网上有许多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配置端口转发成功!