Nginx proxy_pass 和重定向

Nginx proxy_pass 和重定向

我尝试清理反向代理 nginx 配置中的 URL。我的配置如下

upstream blog {
    ip:port;
}
server {
        listen       80;
        server_name  domain.tdl www.domain.tdl;

        rewrite ^/index.html$ / redirect;
        rewrite ^(/.+)/index.html$ $1 redirect;

        if ($request_uri ~* ".html") {
            rewrite (?i)^(.*)/(.*)\.html $1/$2 redirect;
        }

        location / {
            rewrite ^/(.*) /$1 break;
            proxy_pass http://blog;
        }
}

只要我的博客上游端口是 80,一切就都正常了。但如果我将其更改为其他端口,nginx 就会尝试将我的请求重定向到 domain.tdl:port,这显然行不通。我尝试了许多 proxy_set_header 和 proxy_redirect 的组合,但对我来说都不起作用。

根据要求提供更多详细信息,所有输出来自curl -Lv

我将 ip:port 设置为 ip:8000

< HTTP/1.1 301 Moved Permanently
< Location: http://blog:8000/archiv/

我将 proxy_pass 设置为http://blog http://domain.tdl

< HTTP/1.1 301 Moved Permanently
< Location: http://domain.tdl/:8000/archiv/

我设置ip:80

< HTTP/1.1 301 Moved Permanently
< Location: http://domain.tdl/archiv/

有谁知道为什么会发生这种情况或者我该如何解决这个问题?

相关内容