nginx

nginx各种配置

location路径配置原则和优先级

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

  • location /{
    
    }
    
    1
    2
    3
    4
    5
    6
    7

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

    - ```
    location =/a {

    }
    这种写法的匹配优先级最高,用于匹配 /a 的路径,如路径是 /a/b则不通过该匹配;
    1
    2
    3
    location  ^~/a{

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

反向代理

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
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/;
}

反向代理总结

1
2
3
4
5
6
7
8
9
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配置上面,添加

1
2
3
4
upstream group1{
server 192.168.0.1:80;
server 192.168.0.1:81;
}

2、编写location代理

1
2
3
location /a/{
proxy_pass http://group1/;
}

3、others

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

如:

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

nginx
http://yoursite.com/2020/01/09/nginx各种配置/
作者
yangchen
发布于
2020年1月9日
许可协议