后台服务器老是被勒索多半是没有使用Nginx代理( 二 )


后台服务器老是被勒索多半是没有使用Nginx代理

文章插图
 
最简单的轮询策略轮番派发请求,这种配置是最简单的:
http {        upstream App {           # 节点1           server 192.168.1.9:8080;           # 节点2           server 192.168.1.10:8081;           # 节点3           server 192.168.1.11:8082;  }        server {        listen       80;        server_namefelord.cn;    #   ^~ 表示uri以某个常规字符串开头,如果匹配到,则不继续往下匹配 。不是正则匹配        location ^~/api/v1 {            proxy_set_header Host $host;            # 负载均衡            proxy_pass http://app/;      }  }}加权轮询策略指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况:
upstream app {       # 节点1       server 192.168.1.9:8080 weight = 6;       # 节点2       server 192.168.1.10:8081 weight = 3;       # 节点3       server 192.168.1.11:8082 weight = 1;}
最终请求处理数将为6:3:1 进行分配 。其实简单轮询可以看作所有的权重均分为1 。轮询宕机可自动剔除 。
IP HASH根据访问IP进行Hash,这样每个客户端将固定访问服务器,如果服务器宕机,需要手动剔除 。
upstream app {       ip_hash;       # 节点1       server 192.168.1.9:8080 weight = 6;       # 节点2       server 192.168.1.10:8081 weight = 3;       # 节点3       server 192.168.1.11:8082 weight = 1;}最少连接请求将转发到连接数较少的服务器上,充分利用服务器资源:
upstream app {       least_conn;       # 节点1       server 192.168.1.9:8080 weight = 6;       # 节点2       server 192.168.1.10:8081 weight = 3;       # 节点3       server 192.168.1.11:8082 weight = 1;}其它方式我们可以借助一些插件来实现其它模式的负载均衡,例如借助于nginx-upsync-module实现动态负载均衡 。我们是不是借助于此可以开发一个灰度发布功能呢?
2.5 限流通过对Nginx的配置,我们可以实现漏桶算法和令牌桶算法,通过限制单位时间的请求数、同一时间的连接数来限制访问速度 。这一块我并没有深入研究过这里就提一提,你可以查询相关的资料研究 。
3. 总结Nginx非常强大,推荐使用它来代理我们的后端应用,我们可以通过配置实现很多有用的功能,而不必进行一些非业务逻辑的编码来实现,如果你在Spring Boot中实现限流、配置SSL的话,麻烦不说,还影响本地开发,使用Nginx可以让我们专心到业务中去 。可以说Nginx在这里充当了一个小网关的作用,其实很多知名网关底层都是Nginx,比如Kong、Orange、Apache APISIX等,如果你有兴趣可以玩一玩Nginx的高级形态Openresty 。另外我这里也有一份非常不错的Nginx入门资料送给你,可以关注:码农小胖哥 回复 nginx 获取 。




推荐阅读