文档章节

nginx监听端口非80时的转发问题

mn_1127
 mn_1127
发布于 2014/03/14 16:13
字数 446
阅读 15458
收藏 12

该问题是最先发现的,由于之前对nginx不是特别的熟悉所以该问题是个入门级别的:

server {
    listen 80;
    server_name localhost;
    location / {
        proxy_pass http://192.168.1.100:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

以上是nginx默认监听端口号为80的情况,由于公司系统是内网应用,用户已经将链接收藏起来了,收藏后的地址是之前的单台tomcat的8080端口,为了不影响他们的操作习惯所以决定让nginx继续监听8080端口,保持对外端口相同。

于是乎,我便想当然的把nginx的端口号改成了8080,把tomcat的端口改为了8081。改后的nginx配置如下:

server {
    listen 8080;
    server_name localhost;
    location / {
        proxy_pass http://192.168.1.100:8081;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

改完之后,重启测试发现问题了:

当访问http://localhost:8080后,浏览器自动跳转到了 http://localhost去了

这是为什么呢?????

原来,如果nginx的监听端口不是默认的80端口,改为其他非80端口后,后端服务tomcat中的request.getServerPort()方法无法获得正确的端口号,仍然返回到80端口。在response.sendRedirect()时,客户端可能无法获得正确的重定向URL。

所以正确的配置:

server {
    listen 8080;
    server_name localhost;
    location / {
        proxy_pass http://192.168.1.100:8081;
        proxy_set_header Host $host:8080;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}


© 著作权归作者所有

mn_1127
粉丝 6
博文 23
码字总数 6952
作品 0
杭州
后端工程师
私信 提问
加载中

评论(3)

E-Henry
E-Henry
👍
星星之火_
星星之火_
797979797979
ZhouLS
ZhouLS
解决了问题,顶下。13
Nginx错误日志与优化专题

一、Nginx配置和内核优化 实现突破十万并发 二、一次Nignx的502页面的错误记录 (1)错误页面显示 错误日志: 2017/07/17 17:32:57 [error] 29071#0: *96 recv() failed (104: Connection re...

tinywan1227
2017/04/27
0
0
raspberry pi实现下载机

上文写道如何在raspbian上使用TP-LINK TL-725N无线网卡,本文使用该无线网卡实现一个下载机。硬件平台:Raspberry pi。软件平台:操作系统使用raspbian,其他软件包括开源的aria2、webui-ari...

linuxhunter
2013/12/31
0
2
使用Nginx(OpenResty)转发域名到非80端口

今天我们来学习一个比较实际的技能,那就是如何通过域名访问你的Web项目呢?主要解决以下几个问题: 1、如何得到一个可用的域名 2、Web工程的端口一般是8080或8081等等的非80端口,如何访问域...

Trigl
2016/11/14
0
0
nginx 反向代理时丢失端口的解决方案

配置nginx反向代理时遇到一个问题,当设置nginx监听80端口时转发请求没有问题。但一旦设置为监听其他端口,就一直跳转不正常;如,访问欢迎页面时应该是重定向到登录页面,在这个重定向的过程...

qianghong000
2018/06/29
0
0
resin转Tomcat,一个tomcat部署多个web application的配置?

一个新的项目,想尝试用tomcat做web容器,以前的项目都是使用的resin,使用nginx做负载,基本结构就是nginx+resin。 linux服务器,多个web application,resin的配置: 安装一个resin实例,每...

伊人梦醉
2013/10/17
1K
4

没有更多内容

加载失败,请刷新页面

加载更多

小白讲网络安全系列

注入攻击防护 XSS注入 SQL注入 命令注入 文件上传 文件解压缩 CSRF防护 对称加密 非对称加密 数字证书 数字签名 完整性校验 消息验证码 单向散列Hash函数 口令单向加密算法 审计日志 认证鉴权...

一刀
17分钟前
0
0
MYSQL 嵌套事务(SAVEPOINT) 与Spring 事务传播

摘要 savepoint 关键字可以实现嵌套事务。结合savepoint关键字,更方便理解spring的事务传播。 事务嵌套 初始化表脚本 drop table t;create table t(a int, primary key(a)); 开启事务 my...

liangxiao
18分钟前
0
0
Chrome OS 更新新版本可让Linux访问USB连接的Android设备

谷歌再次为Chrome OS带来了重大版本更新,使版本号达到了75。本次更新的一大亮点就是允许在Chrome OS上运行的Linux能够识别通过USB方式连接的Android设备,能够让用户使用Linux进行调试等等。...

linuxCool
昨天
10
0
聊聊feign的HystrixInvocationHandler

序 本文主要研究一下feign的HystrixInvocationHandler HystrixInvocationHandler feign-hystrix-10.2.3-sources.jar!/feign/hystrix/HystrixInvocationHandler.java final class HystrixInvo......

go4it
昨天
15
0
WPS 开启宏功能

前言 最近安装了个人版的WPS2019,使用Excel的宏功能时候发现不能使用了,网上下载了几个安装包都是比较旧的,不能使用。 找了个VB7.1的安装包,安装完了,重启WPS宏功能就可以使用了。 安装...

sharelocked
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部