NGINX配置的一些優化

worker_processes and worker_connections

worker_processes  1;
worker_connections  1024;

這兩個參數的默認值,基本知足通常網站的平常需求。可是根據服務器情況,來作點微調,效果會更好!php

max_clients = worker_processes * worker_connections

默認配置中,一臺服務器處理1000個併發。當服務器的磁盤慢時,就會致使 Nginx 在 I/O 操做上被鎖住。css

爲了不此類問題,能夠作以下處理瀏覽器

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;

提升上傳文件大小限制

若是遇到如下錯誤,你就應該提升上傳大小限制了。svn

「Request Entity Too Large」 (413)

參數設置php-fpm

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;
}
相關文章
相關標籤/搜索