#指定Nginx Worker進程運行用戶以及用戶組 user www www; #指定了Nginx要開啓的進程數,通常幾個CPU就寫幾 worker_processes 2; #錯誤日誌位置 error_log logs/error.log; #指定進程id的存儲文件位置 pid logs/nginx.pid; #指定單進程打開文件數,需與系統設定一致 worker_rlimit_nofile 65535; events { #指定nginx工做模式,nginx主要的工做模式有select、poll、kqueue、epoll #其中select、poll是標準工做模式,kqueue、epoll爲高效工做模式,epoll用在Linux系統中,而kqueue用在BSD系統中 use epoll; #指定單進程的最大鏈接數,即一個進程同時能處理1024個請求 worker_connections 1024; } #HTTP部分 http { #指定配置文件所包含的文件 include mime.types; #指定默認類型爲二進制流,也就是當文件類型未定義時使用這種方式. #例如在沒有配置PHP環境時,Nginx是不予解析的,此時,用瀏覽器訪問PHP文件就會出現下載窗口 default_type application/octet-stream; #設定日誌格式 log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"';; #設置容許客戶端請求的最大的單個文件字節數 client_max_body_size 20m; #指定來自客戶端請求頭的headerbuffer大小,若是自定義了消息頭或有更大的cookie,能夠在這裏增長緩衝大小 client_header_buffer_size 16k; #指定客戶端請求中較大的消息頭的緩存最大數量和大小,4爲個數,32k爲大小,最大緩存爲4個32kb large_client_header_buffers 4 32k; #開啓高效傳輸模式 sendfile on; #tcp_nopush,tcp_nodelay設置on,防止網絡阻塞 tcp_nopush on; tcp_nodelay on; #指定客戶端鏈接保持活動的超時時間 keepalive_timeout 65; #指定客戶端請求頭讀取超時時間,若是超過這個時間,客戶端尚未發送任何數據,Nginx將返回「Request time out(408)」錯誤 client_header_timeout 10; #指定客戶端請求主體讀取超時時間,若是超過這個時間客戶端尚未發送任何數據,Nginx將返回「Request time out(408)」錯誤 client_body_timeout 10; #指定響應客戶端的超時時間。這個超時僅限於兩個鏈接活動之間的時間,若是超過這個時間,客戶端沒有任何活動,Nginx將會關閉鏈接 send_timeout 10; #開啓gzip壓縮,實時壓縮輸出數據流 gzip on; #設置容許壓縮的頁面最小字節數 gzip_min_length 1k; #指定內存空間來存貯壓縮結果,這裏指定4個單位爲16k的內存來存儲壓縮結果,即總大小爲64k gzip_buffers 4 16k; #指定識別HTTP協議版本,默認是1.1 gzip_http_version 1.1; #指定gzip壓縮比,1 壓縮比最小,處理速度最快;9 壓縮比最大,傳輸速度快,但處理最慢,也比較消耗CPU資源 gzip_comp_level 2; #指定壓縮的類型,不管是否指定,「text/html」類型老是會被壓縮 gzip_types text/plain application/x-javascript text/css application/xml; #該選項開啓可讓前端的緩存服務器緩存通過gzip壓縮的頁面,例如,用Varnish緩存通過Nginx壓縮的數據 gzip_vary on; #隱藏Nginx版本號 server_tokens off; #SERVER部分 server { #指定Nginx監端口 listen 8000; #用來指定IP或者域名 server_name localhost; #指定Nginx默認的字符集,只有utf-8支持中文字符 charset utf-8; #指定訪問日誌的名稱及位置 access_log logs/host.access.log main; #可有多個location location / { #指定網頁根目錄 root /data/www/default.com; #設定默認首頁 index index.html index.htm; #Nginx默認是不容許列出整個目錄的,在server或location段裏添加上 autoindex on;來啓用目錄瀏覽。 #開啓目錄瀏覽 autoindex on ; #默認爲on,顯示出文件的確切大小,單位是bytes。 #改成off後,顯示出文件的大概大小,單位是kB或者MB或者GB autoindex_exact_size off ; #默認爲off,顯示的文件時間爲GMT時間。 #改成on後,顯示的文件時間爲文件的服務器時間 autoindex_localtime on; } #開啓目錄瀏覽 location /down/ { #訪問目錄 alias /home/wwwroot/test/; autoindex on; } #指定錯誤頁面 error_page 500 502 503 503 /50x.html; #定義錯誤頁面,若是是500錯誤,則把站點根目錄下的 50x.html 返給用戶 location = /50x.html { root /data/www/www.error.com ; } # proxy the PHP scripts to Apache listening on 127.0.0.1:80 #location ~ \.php$ { # proxy_pass http://127.0.0.1; #} #配置PHP location ~ \.php$ { #指定網頁根目錄 root /data/www/default.com; #指定fastcgi的地址和端口 fastcgi_pass 127.0.0.1:9000; #默認頁面 fastcgi_index index.php; #fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; #配置fastcgi參數 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; #引入fastcgi參數 include fastcgi_params; } # deny access to .htaccess files, if Apache's document root # concurs with nginx's one #location ~ /\.ht { # deny all; #} #指定url中包含jsp或者?的所有轉發到192.168.0.10的80端口即tomcat處理 location ~ (jsp|\?) { proxy_pass http://192.168.0.10:80; } } #站點server,eg: www.default.com #可配置多個站點 server { listen 80; server_name www.default.com; root /data/www/www.default.com; index index.php index.html index.htm; location / { root /data/www/www.default.com; } error_page 500 502 503 504 /50x.html; location = /50x.html { root /data/www/www.error.com ; } } #多個站點配置引入 #conf.d/www.site.com conf.d/www.site2.com include conf.d/* #其餘說明 #針對單個域名請求作出單個鏈接超時的配置. #好比些動態解釋和靜態解釋能夠根據業務的需求配置 #proxy_connect_timeout :後端服務器鏈接的超時時間_發起握手等候響應超時時間 #proxy_read_timeout:鏈接成功後_等候後端服務器響應時間_其實已經進入後端的排隊之中等候處理(也能夠說是後端服務器處理請求的時間) #proxy_send_timeout :後端服務器數據回傳時間_就是在規定時間以內後端服務器必須傳完全部的數據