#下面两个参数如果设置过小,nginx主动发起四次挥手销毁连接,造成nginx出现大量的TIME_WAIT
keepalive_timeout 75; #设置keep-alive客户端连接在服务器端保持开启的超时值;值为0会禁用keep-alive客户端连接;
keepalive_requests 100; #设置一个keep-alive连接上可以服务的请求的最大数量,当最大请求数量达到时,连接被关闭。默认是100。
#nginx.conf配置文件 #user nobody; worker_processes 1; #工作进程:数目。根据硬件调整,通常等于CPU数量或者2倍于CPU。 #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; #错误日志:存放路径。 #pid logs/nginx.pid; #pid(进程标识符):存放路径。 events { worker_connections 1024; #指定一个nginx进程可以打开的最大描述符:数目。理论值应该是最多打开文件数(ulimit -n)与nginx进程#数相除,但是nginx分配请求并不是那#么均匀,#所以最好与ulimit -n 的值保持一致。 #如果并发量比较高的情况下,有可能请求超过工作连接上限;502错误 } http { include mime.types; default_type application/octet-stream; #log_format main '$remote_addr - $remote_user [$time_local] "$request" ' # '$status $body_bytes_sent "$http_referer" ' # '"$http_user_agent" "$http_x_forwarded_for"'; #access_log logs/access.log main; sendfile on; #对于普通应用,必须设为on。如果用来进行下载等应用磁盘IO重负载应用,可设置为off,以平衡磁盘与网络#IO处理速度,降低系统uptime。 #tcp_nopush on; #keepalive_timeout 0; #如果设置过小,nginx主动发起四次挥手销毁连接,造成nginx出现大量的TIME_WAIT keepalive_timeout 75; #设置keep-alive客户端连接在服务器端保持开启的超时值;值为0会禁用keep-alive客户端连接; keepalive_requests 100; #设置一个keep-alive连接上可以服务的请求的最大数量,当最大请求数量达到时,连接被关闭。默认是100。 #gzip on; #upstream上流即后端服务器, #目前支持4种方式的分配 #轮询(down自动剔除,不参与负载均衡)、权重(性能不均)、 #hash(每个请求按访问ip的hash结果分配,每个访客固定到一个一个后端服务器,解决session问题) #fair根据响应时间进行分配,响应时间短的优先分配 #url_hash:根据url的hash结果来分配请求;每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。 upstream backend { server localhost:8080 down weight=1; server localhost:8081 weight=5; server localhost:8082 weight=10 backup; } #可以对每一个后端服务器设置状态 #down表示单前的server暂时不参与负载 #weight为weight越大,负载的权重就越大 #max_fails:允许请求失败的次数默认为1.当超过最大次数时,返回proxy_next_upstream模块定义的错误 #fail_timeout:max_fails次失败后,暂停的时间。 #backup: 其它所有的非backup机器down或者忙的时候,请求backup机器。所以这台机器压力会最轻。 # another virtual host using mix of IP-, name-, and port-based configuration # #http服务,监听80端口 server { listen 80; #配置监听端口 server_name localhost; #配置访问域名,localhost可以根据host设置域名,这边server_name设置为host中对应的域名 #location ~* \.(mp3|exe)$ {undefined 对以“mp3或exe”结尾的地址进行负载均衡 location / { root html; index index.html index.htm; proxy_pass http://backend; #80端口的请求将会进行负载均衡 设置被代理服务器的端口或套接字,以及URL proxy_http_version 1.1; #设置nginx和后端服务器之间的http版本,因为1.1才支持长连接 proxy_set_header Connection ""; #请求清理从client过来的http header,及时client-nginx是短连接,nginx-server也可以是长 } } # 我们在ngnix上面配置了https server { listen 443 ssl; server_name localhost; #增加ssl #ssl on; #如果强制HTTPS访问,这行要打开 #server.crt(证书签名文件CA文件)的路径 ssl_certificate D:\\java\\ngnix\\nginx-1.20.2\\nginx-1.20.2\\conf\\ssl\\server.crt; #server_nopwd.key(私钥)服务器私钥的路径 ssl_certificate_key D:\\java\\ngnix\\nginx-1.20.2\\nginx-1.20.2\\conf\\ssl\\server_nopwd.key; #指定缓存大小为1m ssl_session_cache shared:SSL:1m; #指定缓存时间为1分钟 ssl_session_timeout 1m; #关闭默认开启的ssl_session_tickets ssl_session_tickets off; #设定支持的TLS协议版本 ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #配置密码套件 ssl_ciphers HIGH:!aNULL:!MD5:!ADH:!RC4:!DH:!DHE:!ECDHE; ssl_prefer_server_ciphers on; location / { #root html; #index index.html index.htm; proxy_pass http://127.0.0.1:8080; } } }