Nginx配置端口转发(windows系统)

时间:2024-03-09 09:45:14

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