SERVER 域名監聽&Location (80% 程序需要配置的都在這裡!!!)
#虛擬主機的配置 server { #監聽端口 listen 80; #域名可以有多個,用空格隔開 server_name www.zse.com jd.com; index index.html index.htm index.php; root /data/www/jd; #對******進行負載均衡 location ~ .*.(php|php5)?$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; include fastcgi.conf; } #圖片緩存時間設置 location ~ .*.(gif|jpg|jpeg|png|bmp|swf)$ { expires 10d; } #JS和CSS緩存時間設置 location ~ .*.(js|css)?$ { expires 1h; } #日誌格式設定 #$remote_addr與$http_x_forwarded_for用以記錄客戶端的ip地址; #$remote_user:用來記錄客戶端用戶名稱; #$time_local: 用來記錄訪問時間與時區; #$request: 用來記錄請求的url與http協議; #$status: 用來記錄請求狀態;成功是200, #$body_bytes_sent :記錄發送給客戶端文件主體內容大小; #$http_referer:用來記錄從那個頁面鏈接訪問過來的; #$http_user_agent:記錄客戶瀏覽器的相關信息; #通常web服務器放在反向代理的後面,這樣就不能獲取到客戶的IP地址了,通過$remote_add拿到的IP地址是反向代理服務器的iP地址。 #反向代理服務器在轉發請求的http頭信息中,可以增加x_forwarded_for信息,用以記錄原有客戶端的IP地址和原來客戶端的請求的服務器地址。 log_format access '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" $http_x_forwarded_for'; #定義本虛擬主機的訪問日誌 access_log /usr/local/nginx/logs/host.access.log main; access_log /usr/local/nginx/logs/host.access.404.log log404; #對 "/" 啟用反向代理 location / { proxy_pass http://127.0.0.1:88; proxy_redirect off; proxy_set_header X-Real-IP $remote_addr; #後端的Web服務器可以通過X-Forwarded-For獲取用戶真實IP proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; #以下是一些反向代理的配置,可選。 proxy_set_header Host $host; #允許客戶端請求的最大單文件字節數 client_max_body_size 10m; #緩衝區代理緩衝用戶端請求的最大字節數, #如果把它設置為比較大的數值,例如256k,那麼,無論使用firefox還是IE瀏覽器,來提交任意小於256k的圖片,都很正常。如果註釋該指令,使用默認的client_body_buffer_size設置,也就是操作系統頁面大小的兩倍,8k或者16k,問題就出現了。 #無論使用firefox4.0還是IE8.0,提交一個比較大,200k左右的圖片,都返回500 Internal Server Error錯誤 client_body_buffer_size 128k; #表示使nginx阻止HTTP應答代碼為400或者更高的應答。 proxy_intercept_errors on; #後端服務器連接的超時時間_發起握手等候響應超時時間 #nginx跟後端服務器連接超時時間(代理連接超時) proxy_connect_timeout 90; #後端服務器數據回傳時間(代理發送超時) #後端服務器數據回傳時間_就是在規定時間之內後端服務器必須傳完所有的數據 proxy_send_timeout 90; #連接成功後,後端服務器響應時間(代理接收超時) #連接成功後_等候後端服務器響應時間_其實已經進入後端的排隊之中等候處理(也可以說是後端服務器處理請求的時間) proxy_read_timeout 90; #設置代理服務器(nginx)保存用戶頭信息的緩衝區大小 #設置從被代理服務器讀取的第一部分應答的緩衝區大小,通常情況下這部分應答中包含一個小的應答頭,默認情況下這個值的大小為指令proxy_buffers中指定的一個緩衝區的大小,不過可以將其設置為更小 proxy_buffer_size 4k; #proxy_buffers緩衝區,網頁平均在32k以下的設置 #設置用於讀取應答(來自被代理服務器)的緩衝區數目和大小,默認情況也為分頁大小,根據操作系統的不同可能是4k或者8k proxy_buffers 4 32k; #高負荷下緩衝大小(proxy_buffers*2) proxy_busy_buffers_size 64k; #設置在寫入proxy_temp_path時數據的大小,預防一個工作進程在傳遞文件時阻塞太長 #設定緩存文件夾大小,大於這個值,將從upstream服務器傳 proxy_temp_file_write_size 64k; } #設定查看Nginx狀態的地址 location /NginxStatus { stub_status on; access_log on; auth_basic "NginxStatus"; auth_basic_user_file confpasswd; #htpasswd文件的內容可以用apache提供的htpasswd工具來產生。 } #本地動靜分離反向代理配置 #所有jsp的頁面均交由tomcat或resin處理 location ~ .(jsp|jspx|do)?$ { proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://127.0.0.1:8080; } #所有靜態文件由nginx直接讀取不經過tomcat或resin location ~ .*.(htm|html|gif|jpg|jpeg|png|bmp|swf|ioc|rar|zip|txt|flv|mid|doc|ppt| pdf|xls|mp3|wma)$ { expires 15d; } location ~ .*.(js|css)?$ { expires 1h; } }}
閱讀更多 代碼vs生活 的文章