学海无涯
go,go,go

nginx配置文件nginx.conf优化

nginx优化
user www www;

worker_processes 8;worker_processes最多开启8个,8个以上性能提升不会再提升了,而且稳定性变得更低,所以8个进程够用了。
worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000; 8核cpu绑定配置
error_log /usr/local/nginx/logs/nginx_error.log info;日志级别设置info
worker_rlimit_nofile 65535; Nginx最大打开文件数
worker_priority -20;优先级配置

pid /usr/local/nginx/logs/nginx.pid;

events
{
use epoll;模型试验epoll模型
worker_connections 65535;worker子进程数
multi_accept on;multi_accept 告诉nginx收到一个新连接通知后接受尽可能多的连接,默认是on,设置为on后,多个worker按串行方式来处理连接,
也就是一个连接只有一个worker被唤醒,其他的处于休眠状态,设置为off后,多个worker按并行方式来处理连接,也就是一个连接会唤醒所有的worker,
直到连接分配完毕,没有取得连接的继续休眠。当你的服务器连接数不多时,开启这个参数会让负载有一定的降低,但是当服务器的吞吐量很大时,
为了效率,可以关闭这个参数。
}

http
{
include mime.types;媒体类型,include 只是一个在当前文件中包含另一个文件内容的指令
default_type application/octet-stream;默认媒体类型足够。

server_names_hash_bucket_size 128;nginx配置多个域名参数
保存服务器名字的hash表是由指令 server_names_hash_max_size 和 server_names_hash_bucket_size所控制的。
参数hash bucket size总是等于hash表的大小,并且是一路处理器缓存大小的倍数。在减少了在内存中的存取次数后,使在处理器中加速查找hash表键值成为可能。
如果 hash bucket size等于一路处理器缓存的大小,那么在查找键的时候,最坏的情况下在内存中查找的次数为2。
第一次是确定存储单元的地址,第二次是在存储单元中查找键 值。
因此,如果Nginx给出需要增大 hash max size 或 hash bucket size的提示,那么首要的是增大前一个参数的大

client_header_buffer_size 32k;如果你的请求中的header都很大,那么应该使用client_header_buffer_size,这样能减少一次内存分配。

large_client_header_buffers 4 32k;如果你的请求中只有少量请求header很大,
那么应该使用large_client_header_buffers,因为这样就仅需在处理大header时才会分配更多的空间,从而减少无谓的内存空间浪费。

client_max_body_size 110m;上传文件大小限制

fastcgi优化配置
fastcgi_cache_path /var/cache/nginx/fcgi_cache levels=1:2:1 keys_zone=fcgicache:20m inactive=2h max_size=2g;目录需要手工创建
fastcgi_cache_key “$scheme$host$request_uri”;
fastcgi_connect_timeout 600;
fastcgi_send_timeout 600;
fastcgi_buffer_size 64k;
fastcgi_buffers 4 64k;
fastcgi_busy_buffers_size 128k;
fastcgi_temp_file_write_size 128k;
fastcgi_cache fcgicache;
fastcgi_cache_valid 200 302 1h;
fastcgi_cache_valid 301 1d;
fastcgi_cache_valid any 1h;
fastcgi_cache_min_uses 1;

sendfile on;开启高效文件传输模式,sendfile指令指定nginx是否调用sendfile函数来输出文件,对于普通应用设为 on,
如果用来进行下载等应用磁盘IO重负载应用,可设置为off,以平衡磁盘与网络I/O处理速度,降低系统的负载。注意:如果图片显示不正常把这个改成off。

tcp_nopush on;必须在sendfile开启模式才有效,防止网路阻塞,积极的减少网络报文段的数量(将响应头和正文的开始部分一起发送,而不一个接一个的发送。)

keepalive_timeout 75;客户端连接保持会话超时时间,超过这个时间,服务器断开这个链接。

tcp_nodelay on;也是防止网络阻塞,不过要包涵在keepalived参数才有效。

open_file_cache max=102400 inactive=20s :这个将为打开文件指定缓存,默认是没有启用的,max指定缓存数量,建议和打开文件数一致,
inactive 是指经过多长时间文件没被请求后删除缓存。

open_file_cache_min_uses 1; open_file_cache_min_uses 1 :open_file_cache指令中的inactive 参数时间内文件的最少使用次数,如果超过这个数字,
文件描述符一直是在缓存中打开的,如上例,如果有一个文件在inactive 时间内一次没被使用,它将被移除。

#Gzip Compression压缩优化配置
gzip on;
gzip_buffers 16 8k;
gzip_comp_level 6;
gzip_http_version 1.0;
gzip_min_length 256;
gzip_proxied any;
gzip_vary on;
gzip_types
text/xml application/xml application/atom+xml application/rss+xml application/xhtml+xml image/svg+xml
text/javascript application/javascript application/x-javascript
text/x-json application/json application/x-web-app-manifest+json
text/css text/plain text/x-component
font/opentype application/x-font-ttf application/vnd.ms-fontobject
image/x-icon;
gzip_disable “MSIE [1-6]\.(?!.*SV1)”;

日志配置
log_format main ‘$remote_addr – $remote_user [$time_local] “$request” ‘
‘$status $body_bytes_sent “$http_referer” ‘
‘”$http_user_agent” “$http_x_forwarded_for”‘;

server_tokens off; 隐藏版本号
access_log /usr/local/nginx/logs/access.log;访问日志
include vhost/*.conf;包含的站点文件
}

赞(0) 打赏
未经允许不得转载:YYQ运维技术博客_运维的工作学习之路 » nginx配置文件nginx.conf优化
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

运维devops

联系我们关于本博客

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏