HOME/Articles/

nginx的各种配置

Article Outline

nginx修改完配置文件,一定要重启或者 nginx -s reload !!!!!!!!!!!

nginx各种配置

location路径配置原则和优先级

nginx一般用做代理服务器,并且通过location 来配置路径,以下通过几个例子来进行说明:

  • location /{
    
    }

    这种写法是匹配默认地址,即 ip/ (如localhost/)以及在conf的location路由规则中没有定义过的路径(如 ip/QwQ,也会匹配上)。

  • location =/a {
    
    }

    这种写法的匹配优先级最高,用于匹配 /a 的路径,如路径是 /a/b则不通过该匹配;

    location  ^~/a{
    
    }

    这种写法的匹配优先级次高,优先级小于 =/a 的优先级,即路径为 ip/a 则优先被 =/a 匹配, ip/a/b 被^~/a匹配;

反向代理

location /{
    proxy_pass http://localhost:12345;
}
即是把 http://localhost:12345的地址代理到'ip/' ,ip要看部署nginx服务器的ip

location /a{
    proxy_pass http://localhost:12345;
}
这种写法是 将 http://localhost:12345/a 代理到 'ip/a',


更多的时候,我们想要将 http://localhost:12345 代理到'ip/a'(即不添加location 后面的部分),这时应采用如下的写法:
location /a/{
    proxy_pass http://localhost:12345/;
}

反向代理总结

location /a{
    proxy_pass http://ip;
}
location /b/{
    proxy_pass http://ip/;
}
上述配置的结果:
/a/x ==> http://ip/a/x;
/b/x ==>http://ip/x;

负载均衡

1、在server配置上面,添加

upstream group1{
server 192.168.0.1:80;
server 192.168.0.1:81;
}

2、编写location代理

location /a/{
proxy_pass http://group1/;
}

3、others

此外,还可以配置负载均衡的权重:

如:

server 192.168.0.1:80 weight=1;
server 192.168.0.1:81 weight=1;
weight 代表权重