2025年3月28日 星期五 甲辰(龙)年 月廿七 设为首页 加入收藏
rss
您当前的位置:首页 > 计算机 > 服务器 > Nginx

nginx非80端口的301跳转,301跳转自动带上端口

时间:06-11来源:作者:点击数:25

前言

  • 一级反向代理nginx,占用80端口
  • 二级反向代理nginx,占用10080端口

一级反向代理nginx的配置

  • server {
  • listen 80;
  • server_name mydomain.com;
  • ...
  • location /admin/ {
  • proxy_pass http://192.168.1.100:10080 ;
  • proxy_set_header Host $host:$server_port;
  • proxy_set_header Remote_Addr $remote_addr;
  • proxy_set_header X-Real-IP $remote_addr;
  • proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  • proxy_set_header X-Forwarded-Proto $scheme;
  • proxy_set_header X-Nginx-Proxy true;
  • index index.html index.htm;
  • }
  • ...
  • }

二级反向代理nginx的配置

  • server {
  • listen 10080;
  • server_name mydomain.com;
  • ...
  • location /admin/{
  • alias /xxx/xxx/admin/;
  • try_files $uri $uri/ /admin/index.html;
  • index index.html index.htm;
  • }
  • ...
  • }

问题来了

按照上面配置后,每次访问 http://mydomain.com/admin 时,都会重定向到 http://mydomain.com:10080/admin/

因此,需要将 10080 这个端口去掉。

使用 proxy_redirect 去掉 10080 这个端口

修改一级反向代理nginx的配置,如下:

  • server {
  • listen 80;
  • server_name mydomain.com;
  • ...
  • location /admin/ {
  • proxy_pass http://192.168.1.100:10080 ;
  • proxy_redirect http://mydomain.com:10080/ /;
  • proxy_set_header Host $host:$server_port;
  • proxy_set_header Remote_Addr $remote_addr;
  • proxy_set_header X-Real-IP $remote_addr;
  • proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  • proxy_set_header X-Forwarded-Proto $scheme;
  • proxy_set_header X-Nginx-Proxy true;
  • index index.html index.htm;
  • }
  • ...
  • }
  • proxy_redirect http://mydomain.com:10080/ /; 表示将 http://mydomain.com:10080/ 替换成 /

proxy_redirect的作用

proxy_redirect 该指令用来修改被代理服务器返回的响应头中的Location头域和Refresh头域

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门