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; } } }