nginx七大应该场景

一、将Nginx作为一台web服务器来提供网站服务

        在location快中通过root指令来指定网站根目录即可,如果配置HTTPS,只需要监听启用443端口并配置SSL这两个参数指定证书和私钥即可。

server {
    listen       80;
    server_name  _;

    location / {
        root   /data/wwwroot;
        index  index.html index.htm;
    }
}

# HTTPS server
server {
    listen       443 ssl;
    server_name  _;

    ssl_certificate      /path/to/certificate.crt;
    ssl_certificate_key  /path/to/private-key.key;
    location / {
        root   /data/wwwroot;
        index  index.html index.htm;
    }
}

二、方向代理:nginx作为网站的访问入口,用户先访问nginx,在将请求转发到后端,在将相应反应给用户。

使用的目的:隐藏后端服务器,来统一的对外暴漏访问,提高后端服务器的安全性。

配置:

server {
        listen       8088; # 端口
        server_name  120.0.0.1; # 域名
        #下面这句话就是允许跨域
        add_header Access-Control-Allow-Origin *;      
        location ^~ /jeecg-boot {
            proxy_pass              http://127.0.0.1:8080/path/; # 后端服务访问地址
            proxy_set_header        Host 127.0.0.1;
            proxy_set_header        Host $host;
            proxy_set_header        X-Real-IP $remote_addr;
        }
    }

三、负载均衡:把nginx当做一个负载均衡器,用户访问nginx,nginx再将请求转发到后端的多个服务器上,来提高web服务器的高可用和并发能力,提供了丰富的流量分发算法,默认采用轮询转发。可以配置ip_hash,最小链接,权重值

upstream webservers{
    ip_hash; # 回话保持
    server 127.0.0.1:8080
    server 127.0.0.2:8080
    server 127.0.0.3:8080
    # ... 配置剩余的ip
}
server {
        listen       80; # 端口
        server_name  120.0.0.1; # 域名
        #下面这句话就是允许跨域,我以知乎日报API为例
        add_header Access-Control-Allow-Origin *;
        
        location / {
            proxy_pass              http://webservers; # 不用修改
            proxy_set_header        Host $host;
            proxy_set_header        X-Real-IP $remote_addr;
        }
    }

四、URL重定向:例如将老域名跳转到新域名

server {
    listen 8080;
    server_name old.aliangedu.cn
    location / {
       rewrite  ^/(.*)$ https://new.aliangedu.cn/$1
    }
}

server {
    listen 8080;
    server_name old.aliangedu.cn
    location / {
       rewrite  ^/old-path/(.*)$ /new-path/$1
    }
}

五、防盗链:防止其他网站来盗用自己网站资源的安全机制

注意:referers可以被伪造,不是绝对安全

server {
    listen 8080;
    server_name _
    location ~* \.(gif|jpg|png)$ {
        valid_referers none blocked *.aliangedu.cn;
        if($invalid_referers){
            return 403;
        }
    }
}

六、手机端重定向pc端

server {
    listen 8080;
    server_name _;
    location / {        
        if($http_user_agent ~* '(android|iphone|ipad)'){
            rewite ^/(.*)$ https://m.aliangedu.cn/$1
        }
    }
}

七、基于请求路径转发不同服务

server {
        listen       80; # 端口
        server_name  _; # 域名
        location /path1/ {
            proxy_pass              http://127.0.0.1; # 不用修改
            proxy_set_header        Host $host;
            proxy_set_header        X-Real-IP $remote_addr;
        }
        location /path2/ {
            proxy_pass              http://127.0.0.2; # 不用修改
            proxy_set_header        Host $host;
            proxy_set_header        X-Real-IP $remote_addr;
        }
        location /path3/ {
            proxy_pass              http://127.0.0.3; # 不用修改
            proxy_set_header        Host $host;
            proxy_set_header        X-Real-IP $remote_addr;
        }
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值