Nginx的反向代理自动301跳转避坑

简介: 当Web服务器为Nginx时,若浏览器访问的uri最后不带斜杠,如www.xxx.com.cn/aaa,当aaa是一个目录时,会产生301跳转,且自动将uri补全为www.xxx.com.cn/aaa/,最后添加一个/。当前端存在Nginx反向代理时,就会存在一个坑。

当Web服务器为Nginx时,若浏览器访问的uri最后不带斜杠,如http://www.xxx.com.cn/aaa,当aaa是一个目录时,就会产生301跳转,且自动将uri补全为http://www.xxx.com.cn/aaa/,在最后添加一个/。正常情况下,这个没有问题,浏览器会自动去访问http://www.xxx.com.cn/aaa/,而当前端存在Nginx反向代理时,就会存在一个坑,导致出错无法访问网页。

如果前端存在Nginx反向代理对外提供web代理服务,而真实的web服务器的端口可能不是80端口,假设为9000端口,则以上情况发生时,产生的301跳转的uri会变成http://www.xxx.com.cn:9000/aaa/,从而导致浏览器无法正确打开网页,要解决这个问题,需要在Nginx的配置文件中增加一个配置选项port_in_redirect off

配置示例:

server {
    listen 9000;
    port_in_redirect off;
    ....

这表示自动产生redirect的时候不要带端口,默认是打开的,因此就会出现以上的坑。在使用Nginx做反向代理时候,注意避坑。

目录
相关文章
|
16天前
|
缓存 负载均衡 算法
解读 Nginx:构建高效反向代理和负载均衡的秘密
解读 Nginx:构建高效反向代理和负载均衡的秘密
29 2
|
2天前
|
JSON 负载均衡 算法
Nginx反向代理与负载均衡
Nginx反向代理与负载均衡
|
26天前
|
应用服务中间件 nginx Windows
nginx实现网站url带参跳转 POST请求GET请求跳转
nginx实现网站url带参跳转 POST请求GET请求跳转
22 1
|
6天前
|
缓存 负载均衡 应用服务中间件
Nginx 是一个高性能的开源反向代理服务器和 Web 服务器
Nginx 是一个高性能的开源反向代理服务器和 Web 服务器
12 0
|
10天前
|
Java 应用服务中间件 PHP
杨老师课堂之Nginx学习之反向代理
杨老师课堂之Nginx学习之反向代理
17 0
|
2月前
|
负载均衡 安全 应用服务中间件
nginx配置ssl和反向代理的配置代码
【5月更文挑战第2天】nginx配置ssl和反向代理的配置代码
72 3
|
26天前
|
网络协议 安全 应用服务中间件
阿里云 网站https设置 sll申请与nginx跳转配置
阿里云 网站https设置 sll申请与nginx跳转配置
42 0
|
2月前
|
域名解析 弹性计算 应用服务中间件
基于nginx反向代理实现OSS固定域名IP访问
本文基于阿里云OSS手册:https://help.aliyun.com/zh/oss/use-cases/use-an-ecs-instance-that-runs-centos-to-configure-a-reverse-proxy-for-access-to-oss,继续深入讨论如何利用nginx反向代理,实现固定的IP/域名访问OSS bucket。官方文档能够解决大部分的反向代理固定IP访问oss bucket的场景,但是对于必须使用域名作为endpoint的系统,会出现signatrue鉴权问题。本文继续在官方文档的基础上,将反向代理需要域名作为endpoint的场景补齐方案。
|
2月前
|
缓存 算法 应用服务中间件
nginx 反向代理 与缓存功能
nginx 反向代理 与缓存功能
|
2月前
|
应用服务中间件 nginx
nginx指定location 实现反向代理 动静分离
nginx指定location 实现反向代理 动静分离