NGINX配置

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了NGINX配置相关的知识,希望对你有一定的参考价值。

长连接nginx配置:

http://nginx.org/en/docs/http/ngx_http_upstream_module.html#keepalive
用法: keepalive connections;

upstream http_backend {
        server 127.0.0.1:8080;
        keepalive 16;
}

server {
        ...

        location /http/ {
                proxy_pass http://http_backend;
                proxy_http_version 1.1;
                proxy_set_header Connection "";
                ...
        }
}

connections 连接到上游服务器的最大并发空闲keepalive长连接数(默认是未设置)当这个数被超过时,使用"最近最少使用算法(LUR)"来淘汰并关闭连接

http://nginx.org/en/docs/http/ngx_http_core_module.html#keepalive_requests
用法:keepalive_requests number;
设置通过"一个存活长连接"送达的最大请求数(默认是100,建议根据客户端在"keepalive"存活时间内的总请求数来设置) 当送达的请求数超过该值后,该连接就会被关闭。
keepalive_requests 8192;

http://nginx.org/en/docs/http/ngx_http_core_module.html#keepalive_timeout
用法:keepalive_timeout timeout [header_timeout];
第一个参数设置"keep-alive客户端长连接"将在"服务器端"继续打开的超时时间 可选的第二个参数设置“Keep-Alive: timeout=time”响应头字段的值

http {
    keepalive_timeout 20; --长连接timeout
    keepalive_requests 8192; --每个连接最大请求数
}

负载均衡的作用

1、转发功能
按照一定的算法【权重、轮询】,将客户端请求转发到不同应用服务器上,减轻单个服务器压力,提高系统并发量。

2、故障移除
通过心跳检测的方式,判断应用服务器当前是否可以正常工作,如果服务器期宕掉,自动将请求发送到其他应用服务器。

3、恢复添加
如检测到发生故障的应用服务器恢复工作,自动将其添加到处理用户请求队伍中。

二、Nginx实现负载均衡
同样使用两个tomcat模拟两台应用服务器,端口号分别为8080 和8081

1、Nginx的负载分发策略

  Nginx 的 upstream目前支持的分配算法: 

1)、轮询 ——1:1 轮流处理请求(默认)

  每个请求按时间顺序逐一分配到不同的应用服务器,如果应用服务器down掉,自动剔除,剩下的继续轮询。 

2)、权重 ——you can you up
通过配置权重,指定轮询几率,权重和访问比率成正比,用于应用服务器性能不均的情况。
3)、ip_哈希算法
每个请求按访问ip的hash结果分配,这样每个访客固定访问一个应用服务器,可以解决session共享的问题。

2、配置Nginx的负载均衡与分发策略

  通过在upstream参数中添加的应用服务器IP后添加指定参数即可实现,如:

[html] view plain copy
upstream tomcatserver1 {
server 192.168.72.49:8080 weight=3;
server 192.168.72.49:8081;
}

server {
listen 80;
server_name 8080.max.com;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
proxy_pass http://tomcatserver1;
index index.html index.htm;
}
}
通过以上配置,便可以实现,在访问8080.max.com这个网站时,由于配置了proxy_pass地址,所有请求都会先通过nginx反向代理服务器,在服务器将请求转发给目的主机时,读取upstream为 tomcatsever1的地址,读取分发策略,配置tomcat1权重为3,所以nginx会将大部分请求发送给49服务器上的tomcat1,也就是8080端口;较少部分给tomcat2来实现有条件的负载均衡,当然这个条件就是服务器1、2的硬件指数处理请求能力。

3、nginx其他配置

[html] view plain copy
upstream myServer {

server 192.168.72.49:9090 down;   
server 192.168.72.49:8080 weight=2;   
server 192.168.72.49:6060;   
server 192.168.72.49:7070 backup;   

}
1)down
表示单前的server暂时不参与负载

2)Weight
默认为1.weight越大,负载的权重就越大。

3)max_fails
允许请求失败的次数默认为1.当超过最大次数时,返回proxy_next_upstream 模块定义的错误

4)fail_timeout
max_fails 次失败后,暂停的时间。

5)Backup
其它所有的非backup机器down或者忙的时候,请求backup机器。所以这台机器压力会最轻。

以上是关于NGINX配置的主要内容,如果未能解决你的问题,请参考以下文章

Nginx——Nginx启动报错Job for nginx.service failed because the control process exited with error code(代码片段

Nginx配置文件详细介绍

Nginx 跨域

Nginx的配置

VSCode自定义代码片段11——vue路由的配置

VSCode自定义代码片段11——vue路由的配置