Nginx优化配置,轻松应对高并发
Nginx现在已经是最火的web服务器之一,尤其在静态分离和负载均衡方面,性能十分优越。接下来我们主要看下Nginx在高并发环境下的优化配置,主要是针对 nginx.conf 文件的属性设置。我们打开 nginx.conf 文件,从上往下依次看下。
一、工作进程优化
#user nobody; worker_processes 8; #线程数,匹配服务器核心数目 #error_log logs/error_log; #可指定error_log日志的目录 #error_log logs/error_log notice; #error_log logs/error_log info; #pid logs/nginx.pid #指定pid存放的路径
work_processes 是指 Nginx的工作进程数量,一般按照机器的CPU核数来设置,比如8核的服务就设置为8,16核的服务器,可设置为16。举例如下,
- work_processes 4;#工作进程数量
- worker_cpu_affinity 00000001 00000010 00000100 00001000;#为每个进程指定cpu
二、事件处理模型
events { worker_connections 102400; accept_mutex on; multi_accept on; use epoll; }
- worker_connections 102400; #每个工作进程允许的最大连接数。
- accept_mutex on;
- multi_accept on; # 打开同时接受多个新网络连接请求的功能。
- use epoll; #使用高性能的 epoll 事件驱动,处理效率高。
三、日志输出优化
-
nginx 允许自定义日志的优化输出,可以按照具体项目的需求定制。默认可以获得remote_addr、remote_user 和 http_user_agent、http_x_forwarded_for等属性。
四、高效传输模式
- sendfile on; # 开启高效文件传输模式。
- tcp_nopush on; #需要在sendfile开启模式才有效,防止网络阻塞,积极的减少网络报文段的数量。将响应头和正文的开始部分一起发送,而不一个接一个的发送。
五、开启传输压缩
gzip on;# 这个属性主要是开启传输压缩功能,可以压缩传输的页面、js、json数据、图片等,占用更小的带宽,提高传输性能。
经过上面的配置,大体如下
http { include mine.types default_type application/octet-scream; 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; #高性能传输模式 tcp_nopush on; #keepalive_timeout 0; keepalive_timeout 65; gzip on; #开启传输压缩 gzip_min_length 1k; gzip_buffers 4k; gzip_http_version 1.0; gzip_comp_level 8; gzip_types text/plain application/x-javascript text/css application/xml; gzip_vary on; server { listen 80; server_name localhost; ...
好了,上面就是简单的 nginx 并发性能优化,是不是很简单呢,大家可以抽空试一下哦。