Nginx基本配置

一、Nginx配置項單位
1.配置指定空間大小
    配置時可以使用k(不分大小寫,可以寫爲K)或m(不分大小寫,可以寫爲M)作爲空間大小的單位。1k=1千字節(KB)、1m=1兆字節(MB)
    例如:
        gzip_buffers    48K;
        client_max_body_size    64M;
2.配置指定時間長短
    配置時時可以使用以下單文ms(毫秒),s(秒),m(分鐘),h(小時),d(天),w(周,包含7天),M(月,包含30天),y(年,包括365天)。如果不帶單位,默認爲s(秒),不建議使用不帶單位的時間配置。
    例如:
        expires 10y;
        proxy_read_timeout 600;
        client_body_timeout 2m;

二、用於調試進程和定位問題的配置項
(1)是否以守護進程方式運行Nginx
    語法: daemon on|off;
    默認: daemon on;
(2)是否以master/worker方式工作
    語法: master_process on|off;
    默認: master_process on;
(3error日誌的設置
    語法: error_log pathfile level; 
    默認: error_log logs/error.log error;
    例子:
        #日誌文件路徑使用絕對路徑,建議使用絕對路徑
        error /home/logs/error.log;
        配置時候,nginx安裝路徑/sbin/下執行./nginx -t 命令檢查是否配置錯誤,若干配置無誤,執行./nginx -s reload 命令進行重啓
        修改日誌配置後,安裝路徑下logs目錄中的error.log文件一樣會打印ngnix的啓動信息,但不會打印錯誤信息。
        #注意,修改Nginx的日誌路徑,需要在相關的路徑路徑下新建改文件,否則配置失敗
    pathfile 等於/dev/null;關閉日誌
(4)是否處理幾個特殊的調試點
    語法: debug_points[stop|abort]
    通常不會使用這個配置項。
(5)僅對指定的客戶端輸出debug級別的日誌
    語法: debug_connection[IP|CIDR]
    例子:
    events {
        debug_connection 10.10.11.150;
        debug_connection 10.224.57.0/24;
    }
    這樣,僅僅來自以上IP地址的請求才會輸出debug級別的日誌,其他請求仍然沿用error_log中配置的日誌級別。
    注意:完成此配置安裝時需要加上 --with-debug6)限制coredump核心轉儲文件的大小
    語法: worker_rlimit_core size;
        在Linux系統中,當進程發生錯誤或收到信號而終止時,系統會將進程執行時的內存內容(核心映像)寫入一個文件(core文件),以作爲調試之用,這就是所謂的核心轉儲(core dumps)。當Nginx進程出現一些非法操作(如內存越界)導致進程直接被操作系統強制結束時,會生成核心轉儲core文件,可以從core文件獲取當時的堆棧、寄存器等信息,從而幫助我們定位問題。但這種core文件中的許多信息不一定是用戶需要的,如果不加以限制,那麼可能一個core文件會達到幾GB,這樣隨便coredumps幾次就會把磁盤佔滿,引發嚴重問題。通過worker_rlimit_core配置可以限制core文件的大小,從而有效幫助用戶定位問題。
(7)指定coredump文件生成目錄
    語法: working_directory path;
        worker進程的工作目錄。這個配置項的唯一用途就是設置coredump文件所放置的目錄,協助定位問題。因此,需確保worker進程有權限向working_directory指定的目錄中寫入文件。
三、正常運行的配置項
(1)定義環境變量
    語法: env VAR|VAR=VALUE
    這個配置項可以讓用戶直接設置操作系統上的環境變量。
    例如:
        env TESTPATH=/tmp/;
(2)嵌入其他配置文件
    語法: include pathfile;
    例如:
        include mime.types;
        include vhost/*.conf;

(3)pid文件的路徑
    語法: pid path/file;
    默認: pid logs/nginx.pid;
    注:linux系統下一切都是文件,所以每一個進程都有其文件描述符,而nginx進程將其自己的文件描述符寫入了nginx.pid中,我們需要告訴nginx,讓其重新打開一個新的日誌文件(日誌文件的配置詳情可看這裏,簡單說就是讓日誌記錄什麼內容。)於是我們需要這條指令:kill -USR1 `cat ${pid_path}`  
(4)Nginx worker進程運行的用戶及用戶組
    語法: user username[groupname];
    默認: user nobody nobody;
    user用於設置master進程啓動後,fork出的worker進程運行在哪個用戶和用戶組下。當按照“user username;”設置時,用戶組名與用戶名相同。
    若用戶在configure命令執行時使用了參數--user=username和--group=groupname,此時nginx.conf將使用參數中指定的用戶和用戶組。5)指定Nginx worker進程可以打開的最大句柄描述符個數
    語法: worker_rlimit_nofile limit;
(6)限制信號隊列
    語法: worker_rlimit_sigpending limit;
    設置每個用戶發往Nginx的信號隊列的大小。也就是說,當某個用戶的信號隊列滿了,這個用戶再發送的信號量會被丟掉。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章