一.Nginx 反向代理与负载均衡
二.Nginx 实现高速缓存
三.Nginx 性能参数调优
nginx调优
1.worker_connections 1024(linux理论上支持十万,但是要除以工作进程数worker_processes)
2.worker_processes
worker_processes number(CPU核心数)
3.进程和cpu绑定
CPU核心数为4时,可以进行如下配置:
worker_processes 4;
worker_cpu_affinity 1000 0100 0010 0001;
4.设置worker进程优先级
worker_priority 0,(-20~19,内核进程优先级为-5,不要比这个值小)
5.Nginx worker进程可以打开的最大句柄描述符个数
worker_rlimit_nofile limit;
默认为操作系统的限制可以使用ulimit -a查看
超过这个值得错误提示”too many open files”
6.开启accept锁,默认是开启的,可以达到worker进程负载均衡的效果
7.再次accept锁的时间
accept_mutex_delay 500ms
磁盘IO是否占用CPU
# 正向代理到baidu 服务
location = /baidu.html {
proxy_pass http://www.baidu.com;
}
# 反向代理至 本机的8000服务
location /test/ {
proxy_pass http://127.0.0.1:8000;
}
代理相关参数:
proxy_pass # 代理服务
proxy_redirect off; # 是否允许重定向
proxy_set_header Host $host; # 传header参数至后端服务
proxy_set_header X-Forwarded-For $remote_addr; # 设置request header 即客户端IP 地址,建议配置
proxy_connect_timeout 90; # 连接代理服务超时时间 nginx->连接server
proxy_send_timeout 90; # 请求发送最大时间nginx->client
proxy_read_timeout 90; # 读取最大时间nginx->tomcat
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
//负载均衡例子
upstream backend {
server 127.0.0.1:8081 weight=1;
server 127.0.0.1:8080 weight=2;
}
location / {
proxy_pass http://backend;
}
upstream 相关参数:
service 反向服务地址 加端口
weight 权重
max_fails 失败多少次 认为主机已挂掉则,踢出
fail_timeout 踢出后重新探测时间
backup 备用服务
max_conns 允许最大连接数
slow_start 当节点恢复,不立即加入,而是等待 slow_start 后加入服务对列。