首页 > 解决方案 > Nginx 重定向带和不带端口

问题描述

我们有 2 个使用 nginx 的环境(测试和产品)。

要访问测试,我们直接使用主机名:https://myhost:29000

要访问 prod,我们有一个外部 LoadBalancer: https://mysite 重定向到 https://myprodhost1:29000 和 https://myprodhost2:29000

我们有以下nginx配置

location / {
    try_files $uri $uri/ =404;
}

location /error-page {
  port_in_redirect off;
  return 301 /;
}

/error-page 在客户端(由 React)处理,因此它不存在于后端。

我们想要实现的是:如果用户导航到错误页面并按 F5,它应该被重定向到 / (root)

问题是先前的配置适用于 prod,因为端口 29000 将被省略。对于测试它不起作用,因为我们需要端口:29000

我尝试了几种配置,但都没有成功。

标签: nginx

解决方案


我解决了它只是使用:

absolute_redirect off;

推荐阅读