增加工作线程数和并发连接数
##cat /etc/nginx/nginx.conf
...
worker_connections 1024;
…
# 设置了一个worker进程可以同时打开的链接数,有高并发需求时,按照需求进行设定。链接最大数目= worker_processes * worker_connections,包含了nginx与客户端和nginx与upstream之间的连接
…
multi_accept on; # 默认无此配置,是否尽可能的接受请求(建议打开)
...
use epoll; #默认无此配置 Linux 关键配置,允许单个线程处理多个客户端请求
...
worker_processes 1;
…
worker_processes 4; //如果是4核cpu
…
worker_processes auto;
…
events {
worker_connections 1024;
multi_accept on;
use epoll ;
}
…
配置后端server的长联接
##cat /etc/nginx/nginx.conf
keepalive_timeout 65; //客户端(浏览器)和nginx默认是有一个长连接,65秒
##cat /etc/nginx/nginx.conf
##nginx和后端配置的长连接
upstream websocket {
ip_hash;
server 192.168.1.110 down; #该节点不可用
server 192.168.1.120 backup; #其他节点挂了后该节点自动上线
server 192.168.1.130 weight=5;
server backend1.linuxe.cn 8080 weight=3 ;
keepalive 768; #768个长连接
}
server {
listen 8020;
location / {
proxy_pass http://websocket;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
}
}
启用缓存、压缩
...
# nginx默认不进行压缩处理
gzip on;
gzip_http_version 1.1;
gzip_disable " MSIE [1-6]\.(?!.*SV1)"; //ie的1-6版本是不启动的
gzip_proxied any; // 无条件启用压缩
gzip_types text/plain text/css application/javascript application/x-javascript application/json text/xml application/xml application/xml+rss text/javascript;
gzip_vary on; // 和http头有关系,加个vary头,给代理服务器用的,有的浏览器支持压缩,有的不支持,所以避免浪费不支持的也压缩,所以根据客户端的HTTP头来判断,是否需要压缩
...