nginx重定向導致埠對映的埠無法正常訪問

2021-10-03 19:03:56 字數 771 閱讀 1366

描述:在使用路由器進行埠對映的時候,如果使用和nginx 監聽的埠一樣是不存在問題的 但是如果使用了其他埠 就會出現無法訪問的問題。

例如:訪問 會直接跳轉到

通過web端的開發者工具 可以看到進行了一次301重定向:並且我們可以看到location跳轉到了nginx 監聽的埠

後來我去檢視對應location的配置是沒有進行301重定向的配置。所以第一反應就是前端進行了一次301重定向,但是和開發人員對接了下並沒有做這種操作。所以後續通過查詢資料定位到了根本原因:

在訪問帶目錄的url時,如果末尾不加斜槓(「/」),nginx缺省會自動加上,其實是返回了乙個301跳轉 並且nginx預設使用了絕對路徑重定向模式,所以response headers返回的頭部會帶ip+nginx監聽的埠。

解決方案:

使用相對路徑解決location帶ip+埠的問題

在server裡配置absolute_redirect off;

後面再去訪問 返回的location報文如下:

後續根據location裡的內容自動跳轉到新的url

至此問題解決。

SpringMVC重定向導致的記憶體洩漏分析

public string test string redirecturl 專案內乙個熱點介面,使用了如上 做 的重定向操作,而讓人沒想到的是 這樣子的寫法會有記憶體洩漏的風險 如果不處理,那麼隨著記憶體會耗盡。最終會導致頻繁的fullgc,而oom gc overhead limit exceed...

Docker的埠對映和nginx安裝

1.通過埠對映我在阿里雲上面輸入上面的語句,然後就可以通過網域名稱 5000埠號訪問了這樣無法通過網域名稱 埠號訪問 因為5001在docker裡面不能訪問 同樣因為5001在docker裡面不能訪問 可以訪問 up 50 seconds 5000 tcp,0.0.0.0 5001 5001 tcp...

Docker容器中nginx的埠對映

一台機器下,乙個docker容器執行nginx,並將容器中nginx的埠對映到主機的80埠的命令,如下,docker run it p 80 80 nginx測試a 宿主機192.168.0.108訪問192.168.0.108 80,如下,curl 192.168.0.108 80 doctype...