nginx性能优化参考

 

1)调整配置文件中的配置项的值(配置文件:nginx.conf)

worker_processes auto;开启的进程数,一般配置为跟逻辑CPU核数一样
worker_rlimit_nofile 51200;1nginx进程可打开的最大文件描述符数目的数量


events
{
use epoll;设置工作模式为消息通知模式(epoll),轮询模式效率低(select)
worker_connections 51200;每个进行可打开的最大连接数据,受最大文件描述符数目的限制
multi_accept on;开启后,保持尽可能的接受更多的连接请求
}

keepalive_timeout 60;保持连接的超时时间,可将数字配置更小

可根据实际情况来决定是否关闭
access_log /home/wwwlogs/access.log access;
access_log off;

--开启gzip压缩
gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.1;
gzip_comp_level 2;
gzip_types text/plain application/javascript application/x-javascript text/javascript text/css application/xml application/xml+rss;
gzip_vary on;
gzip_proxied expired no-cache no-store private auth;
gzip_disable "MSIE [1-6]\.";

--设置存储的资源的过期时间
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
}

location ~ .*\.(js|css)?$
{
expires 12h;
}

location ~ /\.
{
deny all;
}

 

nginx 优化配置补充

uset root root;

http中增加下列配置项

gzip_http_version 1.0;

include mime.types;

default_type application/octet-stream;

 

可在http server location中配置

sendfile on;

#每次调用sendfile()时,最大传输的数据大小

sendfile_max_chunk 512k;

 

压缩可配置在http server location

需加载模块

ngx_http_gzip_module

ngx_http_static_module

ngx_http_gunzip_module

前端代理中加上

proxy_set_header Accept-Encoding 'gzip'

同步阻塞 进程->内核发送IO,一直等待内核响应,不接受新请求,请求IO未完成,则进程一直等待,轮询查看IO是否完成,完成后进程将IO结果返回给客户端。

同步非阻塞 进程->内核发送IO,一直等待内核响应,可接受新请求,请求IO未完成,则进程不等待,轮询查看IO是否完成,完成后进程将IO结果返回给客户端。

 

异步阻塞 进程->内核发送IO,不等待内核响应,可接收新请求,请求IO未完成,则内核一直等待,完成后再有内核通知进程,进程再将IO结果返回给客户端。

异步非阻塞 进程->内核发送IO,不等待内核响应,可接收新请求,请求IO未完成,则内核不等待,完成后再有内核通知进程,进程再将IO结果返回给客户端。

 

nginx中针对mp3的优化,需要安装ysam ffmpeg 源码包

./configure --enable-shared --prefix=/usr/loacal/ffmpeg

 

动态链接库

vi /etc/ld.so.conf

加入:/usr/local/ffmpeg/lib

执行 ldconfig 生效

修改/usr/local/ffmpeg/lib目录下的文件权限为777

cd /usr/local/ffmpeg/lib/

chmod 777 *