user www www; // 使用的用戶和組 worker_processes 8; // 指定的工作衍生進程數(一般等于cpu總核數或總核數的2倍) error_log logs/nginx_error.log crit; // 指定錯誤日志存放的路徑,錯誤日志記錄級別分別選項為:debug,info,notice,warn,error,crit #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; pid nginx.pid; // 指定pid文件存放的路徑 #pid logs/nginx.pid; worker_rlimit_nofile 65535; // 一個nginx進程打開的最多文件描述符數目,理論值是最多打開的文件數(系統ulimit -n)與nginx進程數相除,但是nginx分配請求并不均勻,所以在這里建議和ulimit 值保持一致 events { use epoll; // 使用網絡I/O模型,Linux系統推薦采用epoll模型,FreeBSD系統推薦采用kqueue模型 worker_connections 51200; // 允許的連接數} # 設定http服務器,利用它的反向代理功能提供負載均衡支持http { include mime.types; // 設定mime類型,類型由mime.type文件定義 default_type application/octet-stream; charset utf-8; // 設置使用的字符集,如果一個網站有多種字符集,請不要隨便設置,應該讓程序員在HTML代碼中通過Meta標簽設置 ssi on; // 頁面靜態化的一個大問題是登陸用戶訪問如果靜態化,大部分頁面內容需要緩存但是用戶登陸的個人信息是動態的,ssi用來解決頁面部分緩存問題 ssi_silent_errors on; // 默認是off,開啟后在處理SSI文件出錯時不輸出錯誤提示:"[an error occurred while processing the directive]" ssi_types text/shtml; // 默認是ssi_types text/html,所以如果需要htm和html支持,則不需要設置這句,如果需要shtml支持,則需要設置 #log_format main '$remote_addr - $remote_user [$time_local] "$request" ' # '$status $body_bytes_sent "$http_referer" ' # '"$http_user_agent" "$http_x_forwarded_for"'; #access_log logs/access.log main; # 開啟高效文件傳輸模式,sendfile指令指定nginx是否調用sendfile函數來輸出文件,對于普通應用設為on,如果用來進行下載等應用磁盤IO重負載應用,可設置為off,以平衡磁盤與網絡I/O處理速度,降低系統的負載,如果圖片顯示不正常把這個改成off sendfile on; #tcp_nopush on; // 防止網絡阻塞 #tcp_nodelay on; # autoindex off; // 開啟目錄列表訪問,合適下載服務器,默認關閉 server_names_hash_bucket_size 128; // 服務器名字的hash表大小 client_header_buffer_size 32k; // 上傳文件大小限制 large_client_header_buffers 4 32k; // 設定請求緩存 client_max_body_size 300m; // 設定請求緩存 # (與php-fpm有關) 優化的上傳支持,可以加速對大POST 請求的處理速度,包括文件上傳。優化是通過將請求體已寫入一個臨時文件,然后fastcgi 協議傳遞文件名而不是請求體到來實現的 client_body_in_file_only clean; client_body_temp_path /dev/shm 1 2; # 這個參數設置比較大時,使用firefox或ie提交一個小于512K的圖片訪問都會正常,注釋改指令模式大小是操作系統頁面大小的兩倍,8K或16K ,一般提交的圖片大于512K,提交的內容會寫入到臨時的文件,不會出現任何問題。當取消了目錄訪問權限(autoindex off;),如果提交的圖片大于512K 都會返回500 Internal Server Error錯誤 client_body_buffer_size 512k; proxy_connect_timeout 5; // 后端服務器連接的超時時間_發起握手等候響應超時時間(代理連接超時) proxy_read_timeout 60; // 連接成功后_等候后端服務器響應時間_其實已經進入后端的排隊之中等候處理(后端服務器處理請求的時間) proxy_send_timeout 5; // 后端服務器數據回傳時間_就是在規定時間之內后端服務器必須傳完所有的數據 proxy_buffer_size 16k; // 該指令設置緩沖區大小,從代理后端服務器取得的第一部分的響應內容,會放到這里,小的響應header通常位于這部分響應內容里邊.(保存用戶頭信息的緩沖區大小) proxy_buffers 4 64k; // 該指令設置緩沖區的大小和數量,從被代理的后端服務器取得的響應內容,會放置到這里. 默認情況下,一個緩沖區的大小等于內存頁面大小,可能是4K也可能是8K,這取決于平臺 proxy_busy_buffers_size 128k; // 有處在busy狀態的buffer size加起來不能超過proxy_busy_buffers_size,控制同時傳輸到客戶端的buffer數量的 proxy_temp_file_write_size 128k; // # 臨時文件寫入大小 # nginx和cgi之間的超時時間 fastcgi_connect_timeout 90; fastcgi_send_timeout 90; fastcgi_read_timeout 90; fastcgi_buffer_size 64k; fastcgi_buffers 4 64k; fastcgi_busy_buffers_size 128k; fastcgi_temp_file_write_size 128k; # 開啟gzip壓縮 gzip on; gzip_min_length 1k; gzip_buffers 4 16k; # 對http/1.1協議的請求才會進行壓縮,如果使用了反向代理,那么nginx和后端的upstream server服務器是使用的1.0協議通信 gzip_http_version 1.1; gzip_comp_level 9; gzip_types text/plain application/x-javascript text/css application/xml; gzip_vary on; # nginx緩存目錄(在location段落下需要配合proxy_store on 開啟緩存機制 include proxy.conf 處理的詳細規則 if (!-e $request_filename)){proxy_pass http://192.168.10.10;} proxy_temp_path /data/wwwroot/proxy_temp_dir; #proxy_cache_path /data/wwwroot/cache.hxage.com levels=1:2 keys_zone=cache.hxage.com:3000m inactive=1y max_size=80G; # Nginx 內部重定向規則會被啟動,當URL 指向一個目錄并且在最后沒有包含“/”時,Nginx 內部會自動的做一個301 重定向,這時會有兩種情況 # 1、server_name_in_redirect on(默認),URL 重定向為:server_name 中的第一個域名+ 目錄名+ /; # 2、server_name_in_redirect off,URL 重定向為:原URL 中的域名+ 目錄名+ / server_name_in_redirect off; server_tokens off; # sub filter # include sub_filter.conf; # null hostname server { listen 80 default; return 444; access_log off; }server{ listen 5566; server_name localhost; index index.html index.htm index.shtml index.php; location ~ ^/status/ { stub_status on; access_log off; }}#---------------- Vhost --------------------#include vhost/*.conf;}
新聞熱點
疑難解答