首页 > 代码库 > nginx配置优化

nginx配置优化

1配置nginx工作进程的数量(nginx worker)进程数

nginx_processes   auto;


2开启nginx利用多核cou

worker_cpu_affinity   auto;


3更改worker进程可打开的文件最大数

worker_rlimit_nofile  65535


events模块


1使用epoll模型

use   epoll

2设置每个worker进程并发处理的最大连接数

worker_connections  65535


http模块


1隐藏nginx返回的server版本号

server_tokens  off


2禁止返回http响应的server头

server_tag off


3关闭server_info 

server_info  off


4开启高效的文件传输

sendfile   on

开启tcp_nopush

tcp_nopush on (sendfile 开始时才有用)一次性传输整个文件


开启 tcp_nodelay 

tcp_nodelay  on

5设置客户端连接保持会话的超时时间

keepalive_timeout 2


6设置客户端请求头数据超时时间

client_header_timeout 10s

7设置客户端请求超时时间

client_body_timeout 10s


8设置nginx上传文件的大小

client_max_body_size  10m


9设置用户请求头所使用的buffer大小

client_header_buffer_size  32k

 large_client_header_buffers   8 64k 过大使用


10开启gzip压缩

gzip  on

gzip_min_length  1k;大于1k压缩

    gzip_buffers     8 16k;

    gzip_http_version 1.0;

    gzip_comp_level 3;

    gzip_types    text/plain application/x-javascript application/javascript text/css application/xml;

    gzip_vary on;



日志切割


 log_format  main  ‘$remote_addr - $remote_user [$time_local] "$request" ‘

                      ‘$status $body_bytes_sent $request_time "$http_referer" ‘

                      ‘"$http_user_agent" "$http_x_forwarded_for" ‘

                      ‘$upstream_addr $upstream_response_time $upstream_status‘;

    log_format  ssl  ‘$remote_addr - $remote_user [$time_local] "$request" ‘

                      ‘$status $body_bytes_sent $request_time "$http_referer" ‘

                      ‘"$http_user_agent" "$http_x_forwarded_for" ‘

                      ‘$ssl_protocol $ssl_cipher $upstream_addr ‘

                      ‘$upstream_response_time $upstream_status‘;



server里边

11禁止使用代理


        if ( $http_user_agent ~* "Yisou|x86_64-redhat-linux-gnu|Red Hat modified|Python-urllib" ) {

                return 403; 

        }


12使用expires缓存


 location ~ .*\.(js|css)?$

        {

        expires      1d;


nginx配置优化