Nginx 在访问不带斜线的 URL 时重定向到端口 8080

Nginx 在访问不带斜线的 URL 时重定向到端口 8080

访问时: http://example.com/somefolder-->http://example.com:8080/somefolder

我尝试过这个:

 http {
    port_in_redirect off;

有任何想法吗?

答案1

我刚刚遇到了同样的问题并且port_in_redirect off;实际上对我来说是有效的,只要确保在server {}块内使用它即可。

server {
  listen 8080;
  server_name example.com;

  port_in_redirect off;
  autoindex on;

  location / {
    root /var/www/example.com;
    index index.html;
  }
}

答案2

应该可以解决问题。在指令proxy_redirect之后立即添加指令proxy_pass

proxy_redirect http://example.com:8080/ http://example.com/;

答案3

如果有人在 Apache 后面设置 nginx 反向代理时仍然遇到此问题,您可以尝试 ff:

  地点 / {
    代理重定向关闭;
    proxy_set_header Host $host:$server_port; #<--这个解决了我的问题
    proxy_set_header X-Forwarded-Host $http_host;
    proxy_set_header X-真实IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    代理密码http://127.0.0.1:8083
  }
  

我的设置是让 Apache 监听 127.0.0.1:8083 并让 nginx 代理请求到它。

答案4

我认为这个简单的例子就足够了:

location = /somefolder {
    return 302 http://$host:8080/somefolder;
}

相关内容