最近在雲服務搭建java項目環境,用nginx部署一些自己開發的東西,在實現80端口代理前端頁面后試着想不再對外開通額外端口給到通過雲服務訪問另一個項目。
網上對於同一端口代理多個服務簡單明了,但是自己通過配置后存在許多誤區做以記錄。
default.conf(nginx配置文件之一,或者其他配置文件中對應server項如下)
server{
listen 80;
server_name testdemo;
#access_log /var/log/nginx/host.access.log main;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}#這項location配置是轉發到nginx自帶的首頁,我們做代理需要新增一項location配置如下
location /cn {#根據訪問nginx同一端口下的指定路徑做轉發代理,我們這里是‘/cn’
proxy_pass http://localhost:8080;
#也就是如果nginx訪問路徑是‘http://www.baidu.com/’到nginx首頁面,那么訪問這個為‘http://www.baidu.com/cn’;
#而且遇到后端服務問題是,需要設置contextPath進行路徑映射,這里nginx會通過該配置請求到后端‘http://localhost:8080/cn’,如果后端
#服務沒有‘/cn’這個映射路徑是無正常代理成功!
}
}