worker_processes and worker_connections
worker_processes 1;
worker_connections 1024;
這兩個引數的預設值,基本滿足一般網站的日常需求。但是根據伺服器狀況,來做點微調,效果會更好!
max_clients = worker_processes * worker_connections
預設配置中,一臺伺服器處理1000個併發。當伺服器的磁碟慢時,就會導致 Nginx 在 I/O 操作上被鎖住。
為了避免此類問題,可以做如下處理
worker_processes [number of processor cores]
接下來,我們看看CPU有多少個核心
cat /proc/cpuinfo |grep processor
processor : 0
processor : 1
processor : 2
processor : 3
有4個核心,設定引數如下:
worker_processes 4;
有人認為這兩個引數的值越大越好,這是不正確的。導致資源浪費的同時可能會導致一些嚴重的問題產生。
隱藏Nginx版本資訊
基於安全原因,不想讓使用者知道當前使用的 Nginx 版本資訊等,需要做如下設定
server_tokens off;
提高上傳檔案大小限制
如果遇到以下錯誤,你就應該提高上傳大小限制了。
“Request Entity Too Large” (413)
引數設定
client_max_body_size 20m;
client_body_buffer_size 128k;
瀏覽器快取控制
如果你想節省資源和頻寬,引入瀏覽器快取不失為一個好的方案。這裡,主要針對一些靜態檔案。
location ~* \.(jpg|jpeg|gif|png|css|js|ico|xml)$ {
access_log off;
log_not_found off;
expires 360d;
}
轉發請求給PHP-FPM
兩種方式:TCP/IP 和 Unix Socket。
# Pass PHP scripts to PHP-FPM
location ~* \.php$ {
fastcgi_index index.php;
fastcgi_pass 127.0.0.1:9000;
#fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
}
禁止訪問隱藏檔案
在伺服器根目錄或公共目錄下,有很多隱藏檔案,比如.開頭的檔案,版本控制檔案以及目錄 .svn .htaccess 等。這些都不應該讓使用者看到。
location ~ /\. {
access_log off;
log_not_found off;
deny all;
}