Nginx反向代理埠網域無法存取問題解決

WBOY
發布: 2016-08-08 09:29:20
原創
3838 人瀏覽過

開年上班第一天早上解決這個問題,說實在的還是第一次碰到。使用域名代理web項目,請求時候,不知為何不使用域名,而是直接ip端口作為路徑,導致網頁崩潰無法使用。

因為使用nginx作為前端伺服器,所以稍微做了一下修改,下面為修改前和修改後的比較:

修改前:

  0  server_name  
xxx.aaaaa .com
;
         location / {               

proxy_密碼
                proxy_set_header  X-Real-IP  $remote_addr;          .htm;         }         error_page   500 502 503 504  /50x.html root   html;        }        }
修改後:

server_name  xxx.aaaaa.com;
         location / {
                proxy_pass http://10.1
4
8.220858.            proxy_read_timeout 600s;
                proxy_set_header  X-Real- $host:$server_port;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

     

         error_page   500 502 503 504  /50x.html;        location = /50x.html {        location = /50x.html {

       

        }        }



存取成功。 當然建議對於靜態資源,使用例如

location ~ .*.(gif|jpg|png|html|htm|css|js|flv|ico|swf)(.*) {
       
              proxy_set_header Host $host;
              proxy_cache cache_one;
              proxy_cache_valid 200 302 1h;
              proxy_cache_valid 301 1d;
              proxy_cache_valid any 1m;
              expires 30d;
              index index.html index.htm;
        }
效率要好的。

主要參考原文為,很感謝這位大哥指導:

http://www.cnblogs.com/likehua/p/4056625.html


Nginx預設反向後的連接埠為80,因此存在被代理後的連接埠為80的問題,這就導致存取出錯。主要原因在Nginx的設定檔的host設定時沒有設定回應的連接埠。

相關設定檔如下:





1

2

3

4 http:

//ime-server/ime-server;

proxy_set_header Host $host;

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

如上,Host配置只有host,沒有對應的port,這就導致在被代理的地方取得錯誤的連接埠。本文以java為例:

1

2

3

4

5

3

4

5

3

45

3

453

4

scheme = httpRequest.getScheme();    

String serverName = httpRequest.getServerName();    int port = httpRequest.getServerPort();    //服務請求位址    String requestURI = scheme+

"://"
+serverName+
":"🎜🎜+port+🎜🎜"/ime-server/rest/"🎜🎜+Name+Sgn+ 🎜🎜🎜🎜

  這時,取得的port為80,雖然nginx監聽的連接埠為9090。這個錯誤讓我很鬱悶。於是,修改nginx的設定文件,將Host後面的改為$host:$server_port即可,設定檔如下:

1

2

353

7

8

location /ime-server {

            

#root   html;

            #index  index.html index.htm;

            proxy_pass http://ime-server/ime-server;

            proxy_set_header Host $host:$server_port;

            proxy_set_header X-Real-IP $remote_addr;

            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

        }

. 。然後檢查被代理後的連接埠資訊是否正確: 以上就介紹了Nginx反向代理埠網域無法存取問題解決,包括了方面的內容,希望對PHP教學有興趣的朋友有幫助。

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!