#執行使用者
user www www;
#啟動程序數,一般為cpu核數的兩倍,開啟太多,會影響主程序排程,占用cpu會增高
worker_processes 2;
#全域性錯誤日誌及pid檔案
error_log logs/error.log notice;
pid logs/nginx.pid;
#繫結worker程序和cpu,只有linux核心高於2.4可用;
worker_cpu_affinity 0001 0100 1000 0010 0001 0100 1000 0010;
#和系統的單程序開啟檔案數一致,使用ulimit -shn 65534 設定
worker_rlimit_nofile 65534;
#工作模式及連線數上限
events
#設定http伺服器
http 進行定義
include mime.types;
#不能帶單位!配置個主機時必須設定該值,否則無法執行nginx或測試時不通過,該設定與server_names_hash_max_size 共同控制儲存伺服器名的hash表,hash bucket size總是等於hash表的大小,並且是一路處理器快取大小的倍數。若hash bucket size等於一路處理器快取的大小,那麼在查詢鍵的時候,最壞的情況下在記憶體中查詢的次數為2。第一次是確定儲存單元的位址,第二次是在儲存單元中查詢鍵 值。若報出hash max size 或 hash bucket size的提示,則我們需要增加server_names_hash_max_size的值。
server_names_hash_bucket_size 128;
#4為個數,128k為大小,預設是4k。申請4個128k。當http 的uri太長或者request header過大時會報414 request uri too large或400 bad request,這是很有可能是cookie中寫入的值太大造成的,因為header中的其他引數的size一般比較固定,只有cookie可能被寫入較 大的資料,這時可以調大上述兩個值,相應的瀏覽器中cookie的位元組數上限會增大。
client_header_buffer_size 128k;
large_client_header_buffers 4 128k;
#http請求的body最大限制值,若超出此值,報413 request entity too large
client_max_body_size 8m;
#關閉報錯時的nginx版本顯示
server_tokens off;
#開啟系統函式sendfile()支援
sendfile on;
#開啟linux(僅linux下)下tcp_cork,sendfile開啟時才有效,用來傳送系統http response headers設定該選項的目的是告訴tcp協議不要僅僅為了清空傳送快取而傳送報文段。通常應該設定tcpnopush插口選項。這樣,當請求長度超過 報文段最大長度時,協議就會盡可能發出滿長度的報文段。這樣可以減少報文段的數量,減少的程度取決於每次傳送的資料量。
tcp_nopush on;
#開啟tcp_nodelay在包含了keepalive才有效
keepalive_timeout 60;
tcp_nodelay on;
#上述四項可以有效提高檔案傳輸效能
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
fastcgi_buffer_size 64k;
fastcgi_buffers 4 64k;
fastcgi_busy_buffers_size 128k;
fastcgi_temp_file_write_size 128k;
#設定上述數值設定太小時若負載上來時可能報 502 bad gateway
#開啟gzip壓縮,實時壓縮輸出資料流
gzip on;
#從content-length中數值獲取驗證,小於1k會越壓越大
gzip_min_length 1k;
# 以16k為單位4倍的申請記憶體做壓縮結果流快取,預設值是申請跟原始資料相同大小的記憶體空間去儲存gzip壓縮結果。
gzip_buffers 4 16k;
# 預設1.1,大部分瀏覽器已經支援gzip解壓,不必理會
#壓縮比率1-9,1壓縮比最小處理速度最快,9壓縮比最大但處理最慢且耗cpu
gzip_comp_level 2;
#此選項可讓前端的快取服務,如squid快取經過nginx壓縮的資料
gzip_vary on;
#該選項在做反向**時設定壓縮,後面引數為驗證的header頭資訊,再做相應的壓縮處理,關閉為off
#gzip_proxied expired no-cache no-store private no_last_modified no_etag auth any
#定義名為connlimit的併發連線數限制空間,儲存10m的帶有二進位制ip的會話資訊,每個會話資訊是32bytes,10m應該可以記錄320000個會話。配合limit_conn 使用。
#limit_zone connlimit $binary_remote_addr 10m;
#設定負載均衡的伺服器列表
#設定檢視nginx狀態的位址
location /nginxstatus
#備註:conf/htpasswd 檔案的內容用 apache 提供的 htpasswd 工具來產生即#可。
#檢視 nginx 執行狀態
#輸入位址 輸入驗證帳號密碼,即可看到
#類似如下內容:
#active connections: 328
#server accepts handled requests
#9309 8982 28890
#reading: 1 writing: 3 waiting: 324
#第一行表示目前活躍的連線數
#第三行的第三個數字表示nginx執行到當前時間接受到的總請求數,如果快達到了上
#限,就需要加大上限值。
#第四行是nginx的佇列狀態
Nginx配置詳解
nginx的主要配置檔案是nginx.conf,位於安裝目錄下的nginx conf資料夾裡,主要的配置引數如下 定義nginx執行的使用者和使用者組 user nobody nobody nginx程序數,建議設定為等於cpu總核心數。worker processes 8 全域性錯誤日誌定義型別,...
nginx配置詳解
定義nginx執行的使用者和使用者組 user www www nginx程序數,建議設定為等於cpu總核心數。worker processes 8 全域性錯誤日誌定義型別,debug info notice warn error crit error log var log nginx error...
NGINX配置詳解
nginx 配置檔案 user nginx 使用者worker processes 8 工作程序,根據硬體調整,大於等於cpu核數 error log logs nginx error.log crit 錯誤日誌 pid logs nginx.pid pid放置的位置 worker rlimit n...