網上有許多nginx端口轉發配置方式都是錯的,或者不適合1.14.0以后版本的,或者是不適用於windows版nginx,至於是哪個原因,本人並未深究;
以下是本人配置windows版nginx端口轉發的配置與驗證結果,隨筆記錄,以作參考;
下載nginx-1.15.8后解壓,得到nginx-1.15.8文件夾
一,修改E:\nginx-1.15.8\conf\nginx.conf配置文件
在nginx.conf配置文件的http節點添加以下配置,
http {
#gzip on;
#添加upstream映射9080端口
upstream api{
server 127.0.0.1:9080;
}
#添加upstream映射8080端口
upstream tomcat{
server 127.0.0.1:8080;
}
server {
listen 80;
server_name localhost;
#添加location匹配路由規則:/api
location /api {
#代理使用上面upstream定義名稱為api的端口映射方式;
#注意:最后一定要加斜桿,否則不能訪問到啟動在該端口項目,只能轉發到端口,但端口后的路由匹配均不生效;
#錯誤格式proxy_pass http://api;
#正確格式proxy_pass http://api/;
proxy_pass http://api/;
}
location / {
root html;
index index.html index.htm;
#一般非特殊請求,轉發到tomcat所在的端口
#代理配置格式參考api,配置結果如下
proxy_pass http://tomcat/;
}
}
}
我就是在proxy_pass配置沒有加/結束,所以轉發到端口后nginx限制繼續訪問該端口下項目的其他路由,找了好久沒找對是該原因
二,驗證配置端口映射結果
啟動一個springboot項目,端口使用9080
啟動tomcat端口使用8080
不使用端口訪問,均可以訪問到對應的頁面,既是nginx配置端口轉發成功!