nginx環境配置

nginx環境配置遇到不少坑,總結一下。

1.關於內外網

server結構下需要配置listen和server_name,如果需要外網訪問,server_name配置成域名即可,listen直接配置端口號。如此,通過域名:端口號,或者內網IP:端口號在相應網段下都可以訪問。

2.關於重定向

重定向使用location配置。通常至少需要配置 / 路徑,設置root(代碼)目錄,指定index。如果需要配置子路徑,在主路徑下繼續編寫即可。如

location /cepm/ { 
proxy_pass http://192.168.18.100:3090/cepm/
}

proxy_pass表示代理,代理的url可以直接跟在proxy_pass後面。
如果proxy_read_timeout值設置比較小,如1ms,訪問會出現問題,儘量設置大一點。

3.關於405

nginx不支持html靜態頁面實現post請求,此時nginx會返回405錯誤。有一種方案是把post請求轉換爲get請求。

error_page 405 = 200 @405;
location @405
{
    root www;
    proxy_method GET;
    proxy_pass http://static_backend;
}

這裏使用的代理方式是通過類似變量名的方式。下面會有介紹。

4.關於負載均衡

在location中使用變量名的方式的代理定義如下:

upstream static_backend {
    ip_hash;
    server 192.168.18:201:3080;
    server 192.168.18:200:3080;
    server 192.168.18.199:3080 down;
    server 192.168.18.199:3070 max_fails=3 fail_timeout=20s;
}

可以通過多種方式實現負載均衡。

1.weight

server 192.168.18.200 weight=10;

weight越大,負載權重越大。

2.ip_hash

每個請求按訪問ip的hash結果分配,這樣來自同一個IP的訪客訪問固定的後端服務器,可以解決session的問題。

3.第三方工具

如fair,url_hash等,需要自行安裝。
配置upstream時有幾個狀態需要解釋一下:
1.down 表示當前的server暫時不參與負載。
2.max_fails 允許請求失敗的次數默認爲1.當超過最大次數時,返回proxy_next_upstream 模塊定義的錯誤。
3.fail_timeout max_fails次失敗後,暫停的時間。
4.backup 其它所有的非backup機器down或者忙的時候,請求backup機器。因此這臺機器壓力會最輕。
ip_hash不能和backup、weight共存。

5.常用命令

nginx -s reload|reopen|stop|quit #重新加載配置文件|重啓|停止|退出 nginx
nginx -t #測試配置文件是否有語法錯誤

記得配置的時候需要清除瀏覽器緩存,你懂得。

centos6.5搭建nginx環境
http://blog.csdn.net/u011186019/article/details/49211131

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章