Nginx 常用配置

  • Nginx的负载均衡方式

  

1、轮询(默认)

每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。

2、weight
指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。
例如:
upstream bakend {
server 192.168.0.14 weight=10;
server 192.168.0.15 weight=10;
}

3、ip_hash
每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。
例如:
upstream bakend {
ip_hash;
server 192.168.0.14:88;
server 192.168.0.15:80;
}

 

Nginx在局域网中使用ip_hash负载均衡策略,访问全部分发到同一个后台服务器

for循环i取 012三个值,而ip的点分十进制表示方法将ip分成四段(如:192.168.1.1),但是这里循环时只是将ip的前三个段作为参数加入hash函数。这样做的目的是保证ip地址前三位相同的用户经过hash计算将分配到相同的后端server。

作者的这个考虑是极为可取的,因此ip地址前三位相同通常意味着来着同一个局域网或者相邻区域,使用相同的后端服务让nginx在一定程度上更具有一致性。

通过上述解释,已经基本判断出问题所在了。。
主要原因就是,公司使用的局域网前三段ip相同,这样Nginx在ip_hash(for循环后三个参数统一计入hash值)的时候,就将该类所有ip都转发到一个后端了。

另,不论A类B类C类等网络地址,Nginx的ip_hash算法都将一个ip地址的前三段作为hash的关键字。

https://blog.csdn.net/sd4493091/article/details/54894479?utm_source=itdadao&utm_medium=referral

 

4、fair(第三方)
按后端服务器的响应时间来分配请求,响应时间短的优先分配。
upstream backend {
server server1;
server server2;
fair;
}

 

参考:https://blog.csdn.net/shuzl213/article/details/53366895

 

 

  • Nginx的proxy配置

 

 

在nginx中配置proxy_pass时,当在后面的url加上了/,相当于是绝对根路径,则nginx不会把location中匹配的路径部分代理走;如果没有/,则会把匹配的路径部分也给代理走。

 

下面四种情况分别用http://192.168.1.4/proxy/test.html 进行访问。

第一种:

location /proxy/ {

proxy_pass http://127.0.0.1:81/;

}

会被代理到http://127.0.0.1:81/test.html 这个url

 

第二咱(相对于第一种,最后少一个 /)

location /proxy/ {

proxy_pass http://127.0.0.1:81;

}

会被代理到http://127.0.0.1:81/proxy/test.html 这个url

 

第三种:

location /proxy/ {

proxy_pass http://127.0.0.1:81/ftlynx/;

}

会被代理到http://127.0.0.1:81/ftlynx/test.html 这个url。

 

第四种情况(相对于第三种,最后少一个 / ):

location /proxy/ {

proxy_pass http://127.0.0.1:81/ftlynx;

}

会被代理到http://127.0.0.1:81/ftlynxtest.html 这个url

 

从结果可以看出,应该说分为两种情况才正确。即http://127.0.0.1:81 (上面的第二种) 这种和 http://127.0.0.1:81/…. (上面的第1,3,4种) 这种。

 

  • Nginx安全配置

nginx禁止访问所有.开头的隐藏文件设置

location ~ /\. {

deny all;

}

3) 重启nginx

 

1.7 隐藏nginx的版本号

1.7.1背景

中间件与运行环境的信息泄露,可以帮助攻击者了解资产运行环境的情况,进一步针对特定运行环境寻找指定的漏洞进行攻击。

 

1.7.2关闭步骤

1)修改nginx的配置文件vi /usr/local/nginx/conf/nginx.conf

2)在http {—}里加上server_tokens off;

3) 重启nginx

 

1.7.3验证步骤

验证命令:curl -I 域名

 

posted @ 2018-11-02 14:46  1店小二  阅读(201)  评论(0编辑  收藏  举报