nginx塊指令:
全局塊:配置nginx全局的指令
events塊:配置nginx與用戶連接相關指令
http塊:提供HTTP服務
server塊:配置虛擬主機,一個http可以有多個server
location塊:匹配URL後需要做的相關操作。
nginx.conf配置文件詳解:
全局塊: user 指定默認用戶 worker_processes 1; 指定工作進程數。和cpu核數相關.cpu核數*2 worker_rlimit_nofile 102400; 進程打開的最大文件數。 worker_cpu_affinity 0001; 綁定CPU。 error_log 錯誤日誌路徑.日誌等級. pid pid文件的路徑。 events塊: use epoll; 使用epoll的I/O多路複用模型. worker_connections 每個工作進程所支持的最大連接數。 http塊: include mime.types; 媒體類型。 default_type application/octet-stream; 默認類型:以二進制文件流的方式傳輸。 log_format 日誌格式。 access_log main 訪問日誌文件路徑。 main指定名稱。 sendfile 加快傳輸文件的機制。 keepalive_timeout 處理完一個連接後,tcp連接保持的時間。 gzip 對文件進行壓縮,傳輸到客戶端。 server塊: listen 監聽端口 server_name 域名或IP charset 指定響應內容的編碼(utf-8,gbk) access_log 虛擬主機的訪問日誌路徑。 location塊: root 網站默認根目錄。 index 默認index或默認index後綴。 error_page 錯誤頁面。 location ~ \.php$ { #代理php腳本 root html; fastcgi_pass 127.0.0.1:9000; 代理到後端的php。 fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; 指定php腳本名。 include fastcgi_params; }
二. 配置文件優化:
全局塊優化參數: 1.優化工作進程個數:設置爲CPU的總核數或CPU總顆數*2 example: worker_processes 2; # 2核CPU的配置 worker_cpu_affinity 01 10; #工作進程CPU綁定。 worker_processes 4; # 4核CPU的配置 worker_cpu_affinity 0001 0010 0100 1000; #工作進程CPU綁定。 2.工作進程CPU綁定:充分利用硬件的多 CPU 多核資源。 worker_cpu_affinity 01 10; #2核CPU配置. worker_cpu_affinity 0001 0010 0100 1000; #4核CPU配置。 共4核CPU,設置2個工作進程綁定到2核cpu上: worker_cpu_affinity 0001 0010 0001 0010; 3.增大打開最大文件數: worker_rlimit_nofile 102400; events塊配置: 事件處理模型: use epoll; 連接數: worker_connections 65535; 4. http塊配置: sendfile提升文件傳輸 sendfile on; 屏蔽輸出版本: server_tokens off; keepalive_timeout 保持時間: keepalive_timeout 30; #可以設置稍微小點。 #設置30s,可以減小socket連接和釋放的資源的花銷。 gzip壓縮: gzip on; gzip_buffers 4 16k; 以16k爲單位,用4倍的內存緩存這個文件。 gzip_comp_level 3; 壓縮級別.數字越小,壓縮比例越高.佔用資源越多。 gzip_disable "MSIE[1-6]"; #禁用客戶端IE瀏覽器訪問。 gzip_min_length 1k; #最小文件爲1k以上的文件才進行壓縮。 gzip_http_version 1.0; #壓縮所支持的http版本。 gzip_types text/plain application/html application/css application/js; #壓縮文件類型:文本,html,css,js gzip_vary on; #根據http頭部去判斷是否進行壓縮。 client_max_body_size 8m; #加大客戶端上傳文件的大小。 5.server塊配置: charset utf-8; 6. 錯誤頁面優雅顯示: server塊配置: error_page 404 /404.html; location = /404.html { root html; } 在/usr/local/nginx/html/目錄下創建404.html. 自定義錯誤頁面的內容。 7. 啓用客戶端緩存策略: server塊配置: location ~ \.(jpg|png|gif) { expires 30d; } location ~ \.(html|css|js) { expires 1d; }