1. 程式人生 > 其它 >nginx 反向代理 404問題

nginx 反向代理 404問題

技術標籤:javaproblemsnginxjavatomcatlinux

問題描述

電腦上裝了兩臺虛擬機器,內容如下:

  • shanliang 192.168.175.130 有一個tomcat
  • banyu 192。168.175.128 有一個tomcat、有一個nginx

我在兩臺虛擬機器的 tomcat安裝目錄下 /webapps下建立了 test資料夾,並放了一個a.html 頁面,內容是 < h1 > xxxx< /h1 >

單機測試,兩個 tomcat 頁面

  • shanliang 的 測試頁面如下
    在這裡插入圖片描述
  • banyu 的測試頁面
    在這裡插入圖片描述

通過配置 nginx ,嘗試使用反向代理

server {
        listen       9001;
        server_name  localhost;
        location ~  /banyu/ {
            proxy_pass  http://192.168.175.128:8080;
        }
		location ~ /shanliang/ {
			proxy_pass http://192.168.175.130:8080;
		}
    }

上面的程式碼執行起來,報錯404。。。

  • 我想著既然報錯,那就去看日誌,日誌內容如下
    在這裡插入圖片描述
    然後百度了一下,是圖示問題,加上如下內容
location /favicon.ico {
log_not_found off;
	access_log off;
}

反手一個 nginx -s reload 重啟,還是404,這次還沒錯誤日誌了,那我去看看成功的日誌,發現還真在裡面。。。

那就是配置問題了,琢磨著看看開發文件,github一搜 nginx ,進去一看,開發文件排版有點差,這就算了,都是英文,腦殼有點疼。

最終解決方案

server {
        listen       9001;
        server_name  localhost;
        location  /banyu/ {
            proxy_pass  http://192.168.175.128:8080/;
        }
		location /shanliang/ {
			proxy_pass http://192.168.175.130:8080/;
		}
		location /favicon.ico {
			log_not_found off;
			access_log off;
		}
        
    }

執行結果
在這裡插入圖片描述

總結

  • 有問題還是看開發文件來的實在,百度有時候真的很費力不討好。
  • 英語很重要,不太行的英語看英文文件有點痛苦