zoukankan      html  css  js  c++  java
  • Nginx 配置文件优化

     user www www;
     #用户&组
     worker_processes auto;
     #通常是CPU核的数量存储数据的硬盘数量及负载模式,不确定时将其设置为可用的CPU内核数(设置为“auto”将尝试自动检测它)
     error_log /usr/local/nginx/logs/error.log crit;
     pid /usr/local/nginx/logs/nginx.pid;
     #指定pid文件的位置,默认值就可以
    
     worker_rlimit_nofile 65535;
     #更改worker进程的最大打开文件数限制
     events {
     use epoll;
     multi_accept on;
     #在Nginx接到一个新连接通知后,调用accept()来接受尽量多的连接
     worker_connections 65535;
     #最大访问客户数,修改此值时,不能超过 worker_rlimit_nofile 值
     }
     http {
     include mime.types;
     default_type application/octet-stream;
     #使用的默认的 MIME-type
     log_format '$remote_addr - $remote_user [$time_local] "$request" '
     '$status $body_bytes_sent "$http_referer" '
     '"$http_user_agent" "$http_x_forwarded_for"';
     #定义日志格式
     charset UTF-8;
     #设置头文件默认字符集
     server_tokens off;
     #Nginx打开网页报错时,关闭版本号显示
     access_log off;
     sendfile on;
     tcp_nopush on;
     #告诉nginx在一个数据包里发送所有头文件,而不一个接一个的发送
     tcp_nodelay on;
     #是否启用 nagle 缓存算法,告诉nginx不要缓存数据
     sendfile_max_chunk 512k;
     #每个进程每次调用传输数量不能大于设定的值,默认为0,即不设上限
     keepalive_timeout 65;
     #HTTP连接持续时间,值越大无用的线程变的越多,0:关闭此功能,默认为75
     client_header_timeout 10;
     client_body_timeout 10;
     #以上两项是设置请求头和请求体各自的超时时间
     reset_timedout_connection on;
     #告诉nginx关闭不响应的客户端连接
     send_timeout 30;
     #客户端响应超时时间,若客户端停止读取数据,释放过期的客户端连接,默认60s
     limit_conn_zone $binary_remote_addr zone=addr:5m;
     #用于保存各种key,如:当前连接数的共享内存的参数,5m是5兆字节,这个值应该被设置的足够大,以存储(32K*5)32byte状态或者(16K*5)64byte状态
     limit_conn addr 100;
     #key最大连接数,这里key是addr,我设置的值是100,这样就允许每个IP地址最多同时打开100个连接数
     server_names_hash_bucket_size 128;
     #nginx启动出现could not build the server_names_hash, you should increase错误时,请提高这个参数的值一般设成64就够了
     client_body_buffer_size 10K;
     client_header_buffer_size 32k;
     #客户端请求头部的缓冲区大小,这个可以根据你的系统分页大小进行设置
     large_client_header_buffers 4 32k;
     client_max_body_size 8m;
     #上传文件大小设置,一般是动态应用类型
    
     #线程池优化,使用--with-threads配置参数编译
     #aio threads;
     #thread_pool default threads=32 max_queue=65536;
     #aio threads=default;
     #关于更多线程请点击查看
    
     #fastcgi性能调优
    
     fastcgi_connect_timeout 300;
     #连接到后端 Fastcgi 的超时时间
     fastcgi_send_timeout 300;
     #与 Fastcgi 建立连接后多久不传送数据,就会被自动断开
     fastcgi_read_timeout 300;
     #接收 Fastcgi 应答超时时间
     fastcgi_buffers 4 64k;
     #可以设置为 FastCGI 返回的大部分应答大小,这样可以处理大部分请求,较大的请求将被缓冲到磁盘
     fastcgi_buffer_size 64k;
     #指定读取 Fastcgi 应答第一部分需要多大的缓冲区,可以设置gastcgi_buffers选项指定的缓冲区大小
     fastcgi_busy_buffers_size 128k;
     #繁忙时的buffer,可以是fastcgi_buffer的两倍
     fastcgi_temp_file_write_size 128k;
     #在写入fastcgi_temp_path时将用多大的数据块,默认值是fastcgi_buffers的两倍,该值越小越可能报 502 BadGateway
     fastcgi_intercept_errors on;
     #是否传递4**&5**错误信息到客户端,或允许nginx使用error_page处理错误信息.
    
     #fastcgi_cache配置优化(若是多站点虚拟主机,除fastcgi_cache_path(注意keys_zone=名称)全部加入php模块中)
    
     fastcgi_cache fastcgi_cache;
     #开启FastCGI缓存并指定一个名称,开启缓存可以降低CPU的负载,防止502错误出现
     fastcgi_cache_valid 200 302 301 1h;
     #定义哪些http头要缓存
     fastcgi_cache_min_uses 1;
     #URL经过多少次请求将被缓存
     fastcgi_cache_use_stale error timeout invalid_header http_500;
     #定义哪些情况下用过期缓存
     #fastcgi_temp_path /usr/local/nginx/fastcgi_temp;
     fastcgi_cache_path /usr/local/nginx/fastcgi_cache levels=1:2 keys_zone=fastcgi_cache:15m inactive=1d max_size=1g;
     #keys_zone=缓存空间的名字,cache=用多少内存,inactive=默认失效时间,max_size=最多用多少硬盘空间。
     #缓存目录,可以设置目录层级,举例:1:2会生成16*256个字目录
     fastcgi_cache_key $scheme$request_method$host$request_uri;
     #定义fastcgi_cache的key
     #fastcgi_ignore_headers Cache-Control Expires Set-Cookie;
    
     #响应头
    
     add_header X-Cache $upstream_cache_status;
     #缓存命中
     add_header X-Frame-Options SAMEORIGIN;
     #是为了减少点击劫持(Clickjacking)而引入的一个响应头
     add_header X-Content-Type-Options nosniff;
    
     #GZIP性能优化
    
     gzip on;
     gzip_min_length 1100;
     #对数据启用压缩的最少字节数,如:请求小于1K文件,不要压缩,压缩小数据会降低处理此请求的所有进程速度
     gzip_buffers 4 16k;
     gzip_proxied any;
     #允许或者禁止压缩基于请求和响应的响应流,若设置为any,将会压缩所有请求
     gzip_http_version 1.0;
     gzip_comp_level 9;
     #gzip压缩等级在0-9内,数值越大压缩率越高,CPU消耗也就越大
     gzip_types text/plain text/css application/javascript application/x-javascript text/xml application/xml application/xml+rss text/javascript application/json image/jpeg image/gif image/png;
     #压缩类型
     gzip_vary on;
     #varyheader支持,让前端的缓存服务器识别压缩后的文件,代理
     include /usr/local/nginx/conf/vhosts/*.conf;
     #在当前文件中包含另一个文件内容的指令
    
     #静态文件的缓存性能调优
    
     open_file_cache max=65535 inactive=20s;
     #这个将为打开文件指定缓存,max 指定缓存数量.建议和打开文件数一致.inactive 是指经过多长时间文件没被请求后删除缓存
     open_file_cache_valid 30s;
     #这个是指多长时间检查一次缓存的有效信息,例如我一直访问这个文件,30秒后检查是否更新,反之更新
     open_file_cache_min_uses 2;
     #定义了open_file_cache中指令参数不活动时间期间里最小的文件数
     open_file_cache_errors on;
     #NGINX可以缓存在文件访问期间发生的错误,这需要设置该值才能有效,如果启用错误缓存.则在访问资源(不查找资源)时.NGINX会报告相同的错误
    
     #资源缓存优化
     server {
    
     #防盗链设置
    
     location ~* .(jpg|gif|png|swf|flv|wma|asf|mp3|mmf|zip|rar)$ {
     #防盗类型
     valid_referers none blocked *.damowang.com damowang.com;
     #none blocked参数可选.允许使用资源文件的域名
     if ($invalid_referer) {
     return 403;
     #rewrite ^/ https://damowang.com
     #若不符合条件域名,则返回403或404也可以是域名
     }
     }
     location ~ .*.(js|css)$ {
     access_log off;
     expires 180d;
     #健康检查或图片.JS.CSS日志.不需要记录日志.在统计PV时是按照页面计算.而且写入频繁会消耗IO.
     }
     location ~* ^.+.(ogg|ogv|svg|svgz|eot|otf|woff|mp4|swf|ttf|rss|atom|jpg|jpeg|gif|png|ico|zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|tar|mid|midi|wav|bmp|rtf)$ {
     access_log off;
     log_not_found off;
     expires 180d;
     #视图&元素很少改变.可将内容缓存到用户本地.再次访问网站时就无需下载.节省流量.加快访问速度.缓存180天
     }
     }
     server {
     listen 80 default_server;
     server_name .damowang.com;
     rewrite ^ https://damowang.com$request_uri?;
     }
     server {
     listen 443 ssl http2 default_server;
     listen [::]:443 ssl http2;
     server_name .damowang.com;
     root /home/web/damowang;
     index index.html index.php;
    
     ssl_certificate /etc/letsencrypt/live/damowang.com/fullchain.pem;
     ssl_certificate_key /etc/letsencrypt/live/damowang.com/privkey.pem;
    
     ssl_dhparam /etc/nginx/ssl/dhparam.pem;
     ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
     ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS';
    
     ssl_session_cache shared:SSL:50m;
     ssl_session_timeout 1d;
     ssl_session_tickets off;
     ssl_prefer_server_ciphers on;
     add_header Strict-Transport-Security max-age=15768000;
     ssl_stapling on;
     ssl_stapling_verify on;
    
     include /usr/local/nginx/conf/rewrite/wordpress.conf;
     access_log /usr/local/nginx/logs/damowang.log;
    
     location ~ .php$ {
     root /home/web/damowang;
     #fastcgi_pass 127.0.0.1:9000;
     fastcgi_pass unix:/var/run/www/php-cgi.sock;
     fastcgi_index index.php;
     fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
     include fastcgi_params;
     }
     }
     }
     user www www;
     #用户&组
     worker_processes auto;
     #通常是CPU核的数量存储数据的硬盘数量及负载模式,不确定时将其设置为可用的CPU内核数(设置为“auto”将尝试自动检测它)
     error_log /usr/local/nginx/logs/error.log crit;
     pid /usr/local/nginx/logs/nginx.pid;
     #指定pid文件的位置,默认值就可以
    
     worker_rlimit_nofile 65535;
     #更改worker进程的最大打开文件数限制
     events {
     use epoll;
     multi_accept on;
     #在Nginx接到一个新连接通知后,调用accept()来接受尽量多的连接
     worker_connections 65535;
     #最大访问客户数,修改此值时,不能超过 worker_rlimit_nofile 值
     }
     http {
     include mime.types;
     default_type application/octet-stream;
     #使用的默认的 MIME-type
     log_format '$remote_addr - $remote_user [$time_local] "$request" '
     '$status $body_bytes_sent "$http_referer" '
     '"$http_user_agent" "$http_x_forwarded_for"';
     #定义日志格式
     charset UTF-8;
     #设置头文件默认字符集
     server_tokens off;
     #Nginx打开网页报错时,关闭版本号显示
     access_log off;
     sendfile on;
     tcp_nopush on;
     #告诉nginx在一个数据包里发送所有头文件,而不一个接一个的发送
     tcp_nodelay on;
     #是否启用 nagle 缓存算法,告诉nginx不要缓存数据
     sendfile_max_chunk 512k;
     #每个进程每次调用传输数量不能大于设定的值,默认为0,即不设上限
     keepalive_timeout 65;
     #HTTP连接持续时间,值越大无用的线程变的越多,0:关闭此功能,默认为75
     client_header_timeout 10;
     client_body_timeout 10;
     #以上两项是设置请求头和请求体各自的超时时间
     reset_timedout_connection on;
     #告诉nginx关闭不响应的客户端连接
     send_timeout 30;
     #客户端响应超时时间,若客户端停止读取数据,释放过期的客户端连接,默认60s
     limit_conn_zone $binary_remote_addr zone=addr:5m;
     #用于保存各种key,如:当前连接数的共享内存的参数,5m是5兆字节,这个值应该被设置的足够大,以存储(32K*5)32byte状态或者(16K*5)64byte状态
     limit_conn addr 100;
     #key最大连接数,这里key是addr,我设置的值是100,这样就允许每个IP地址最多同时打开100个连接数
     server_names_hash_bucket_size 128;
     #nginx启动出现could not build the server_names_hash, you should increase错误时,请提高这个参数的值一般设成64就够了
     client_body_buffer_size 10K;
     client_header_buffer_size 32k;
     #客户端请求头部的缓冲区大小,这个可以根据你的系统分页大小进行设置
     large_client_header_buffers 4 32k;
     client_max_body_size 8m;
     #上传文件大小设置,一般是动态应用类型
    
     #线程池优化,使用--with-threads配置参数编译
     #aio threads;
     #thread_pool default threads=32 max_queue=65536;
     #aio threads=default;
     #关于更多线程请点击查看
    
     #fastcgi性能调优
    
     fastcgi_connect_timeout 300;
     #连接到后端 Fastcgi 的超时时间
     fastcgi_send_timeout 300;
     #与 Fastcgi 建立连接后多久不传送数据,就会被自动断开
     fastcgi_read_timeout 300;
     #接收 Fastcgi 应答超时时间
     fastcgi_buffers 4 64k;
     #可以设置为 FastCGI 返回的大部分应答大小,这样可以处理大部分请求,较大的请求将被缓冲到磁盘
     fastcgi_buffer_size 64k;
     #指定读取 Fastcgi 应答第一部分需要多大的缓冲区,可以设置gastcgi_buffers选项指定的缓冲区大小
     fastcgi_busy_buffers_size 128k;
     #繁忙时的buffer,可以是fastcgi_buffer的两倍
     fastcgi_temp_file_write_size 128k;
     #在写入fastcgi_temp_path时将用多大的数据块,默认值是fastcgi_buffers的两倍,该值越小越可能报 502 BadGateway
     fastcgi_intercept_errors on;
     #是否传递4**&5**错误信息到客户端,或允许nginx使用error_page处理错误信息.
    
     #fastcgi_cache配置优化(若是多站点虚拟主机,除fastcgi_cache_path(注意keys_zone=名称)全部加入php模块中)
    
     fastcgi_cache fastcgi_cache;
     #开启FastCGI缓存并指定一个名称,开启缓存可以降低CPU的负载,防止502错误出现
     fastcgi_cache_valid 200 302 301 1h;
     #定义哪些http头要缓存
     fastcgi_cache_min_uses 1;
     #URL经过多少次请求将被缓存
     fastcgi_cache_use_stale error timeout invalid_header http_500;
     #定义哪些情况下用过期缓存
     #fastcgi_temp_path /usr/local/nginx/fastcgi_temp;
     fastcgi_cache_path /usr/local/nginx/fastcgi_cache levels=1:2 keys_zone=fastcgi_cache:15m inactive=1d max_size=1g;
     #keys_zone=缓存空间的名字,cache=用多少内存,inactive=默认失效时间,max_size=最多用多少硬盘空间。
     #缓存目录,可以设置目录层级,举例:1:2会生成16*256个字目录
     fastcgi_cache_key $scheme$request_method$host$request_uri;
     #定义fastcgi_cache的key
     #fastcgi_ignore_headers Cache-Control Expires Set-Cookie;
    
     #响应头
    
     add_header X-Cache $upstream_cache_status;
     #缓存命中
     add_header X-Frame-Options SAMEORIGIN;
     #是为了减少点击劫持(Clickjacking)而引入的一个响应头
     add_header X-Content-Type-Options nosniff;
    
     #GZIP性能优化
    
     gzip on;
     gzip_min_length 1100;
     #对数据启用压缩的最少字节数,如:请求小于1K文件,不要压缩,压缩小数据会降低处理此请求的所有进程速度
     gzip_buffers 4 16k;
     gzip_proxied any;
     #允许或者禁止压缩基于请求和响应的响应流,若设置为any,将会压缩所有请求
     gzip_http_version 1.0;
     gzip_comp_level 9;
     #gzip压缩等级在0-9内,数值越大压缩率越高,CPU消耗也就越大
     gzip_types text/plain text/css application/javascript application/x-javascript text/xml application/xml application/xml+rss text/javascript application/json image/jpeg image/gif image/png;
     #压缩类型
     gzip_vary on;
     #varyheader支持,让前端的缓存服务器识别压缩后的文件,代理
     include /usr/local/nginx/conf/vhosts/*.conf;
     #在当前文件中包含另一个文件内容的指令
    
     #静态文件的缓存性能调优
    
     open_file_cache max=65535 inactive=20s;
     #这个将为打开文件指定缓存,max 指定缓存数量.建议和打开文件数一致.inactive 是指经过多长时间文件没被请求后删除缓存
     open_file_cache_valid 30s;
     #这个是指多长时间检查一次缓存的有效信息,例如我一直访问这个文件,30秒后检查是否更新,反之更新
     open_file_cache_min_uses 2;
     #定义了open_file_cache中指令参数不活动时间期间里最小的文件数
     open_file_cache_errors on;
     #NGINX可以缓存在文件访问期间发生的错误,这需要设置该值才能有效,如果启用错误缓存.则在访问资源(不查找资源)时.NGINX会报告相同的错误
    
     #资源缓存优化
     server {
    
     #防盗链设置
    
     location ~* .(jpg|gif|png|swf|flv|wma|asf|mp3|mmf|zip|rar)$ {
     #防盗类型
     valid_referers none blocked *.damowang.com damowang.com;
     #none blocked参数可选.允许使用资源文件的域名
     if ($invalid_referer) {
     return 403;
     #rewrite ^/ https://damowang.com
     #若不符合条件域名,则返回403或404也可以是域名
     }
     }
     location ~ .*.(js|css)$ {
     access_log off;
     expires 180d;
     #健康检查或图片.JS.CSS日志.不需要记录日志.在统计PV时是按照页面计算.而且写入频繁会消耗IO.
     }
     location ~* ^.+.(ogg|ogv|svg|svgz|eot|otf|woff|mp4|swf|ttf|rss|atom|jpg|jpeg|gif|png|ico|zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|tar|mid|midi|wav|bmp|rtf)$ {
     access_log off;
     log_not_found off;
     expires 180d;
     #视图&元素很少改变.可将内容缓存到用户本地.再次访问网站时就无需下载.节省流量.加快访问速度.缓存180天
     }
     }
     server {
     listen 80 default_server;
     server_name .damowang.com;
     rewrite ^ https://damowang.com$request_uri?;
     }
     server {
     listen 443 ssl http2 default_server;
     listen [::]:443 ssl http2;
     server_name .renwole.com;
     root /home/web/renwole;
     index index.html index.php;
    
     ssl_certificate /etc/letsencrypt/live/renwole.com/fullchain.pem;
     ssl_certificate_key /etc/letsencrypt/live/renwole.com/privkey.pem;
    
     ssl_dhparam /etc/nginx/ssl/dhparam.pem;
     ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
     ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS';
    
     ssl_session_cache shared:SSL:50m;
     ssl_session_timeout 1d;
     ssl_session_tickets off;
     ssl_prefer_server_ciphers on;
     add_header Strict-Transport-Security max-age=15768000;
     ssl_stapling on;
     ssl_stapling_verify on;
    
     include /usr/local/nginx/conf/rewrite/wordpress.conf;
     access_log /usr/local/nginx/logs/renwole.log;
    
     location ~ .php$ {
     root /home/web/renwole;
     #fastcgi_pass 127.0.0.1:9000;
     fastcgi_pass unix:/var/run/www/php-cgi.sock;
     fastcgi_index index.php;
     fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
     include fastcgi_params;
     }
     }
     }
  • 相关阅读:
    VueBlog
    java 代理模式
    集合框架
    面试题
    java 多线程
    网络编程
    HTTP
    MAVEN
    Redis高级
    深入浅出--梯度下降法及其实现
  • 原文地址:https://www.cnblogs.com/bigdevilking/p/9498851.html
Copyright © 2011-2022 走看看