Nginx 反向代理没有重定向?

Nginx 反向代理没有重定向?

更新

我认为可以将其缩小到以下几点:

出于某种原因,当 Nginx 尝试确定是否代理请求时,主机名对 Nginx 很重要。如果将主机名设置为,则git.example.com请求似乎无法通过,但如果设置为203.0.113.2,则请求会通过。为什么主机名很重要?

在这里提交了与 Nginx 相关的问题

原始问题

当我直接在浏览器栏中输入反向代理的 IP 地址时,它会执行重定向。

在这种情况下,我将输入203.0.113.2并执行重定向到203.0.113.1

/etc/hosts当使用通过条目解析的 URL 时,203.0.113.2 git.example.com将显示“欢迎使用 Ngnix 页面”,而不是重定向产生的页面。

IIUC 浏览器将首先203.0.113.2根据 URL 条目解析 IP 地址git.example.com,因此两者都应该导致调用代理配置,但事实并非如此。

这是配置:

server {
    listen 80;
    server_name git.example.com;

    proxy_set_header X-Real-IP  $remote_addr; # pass on real client IP

    location / {
        proxy_pass http://203.0.113.1:3000;
    }
}

有趣的是,我可以导航到例如:

http://203.0.113.2/issues

如果我随后进行更改203.0.113.2git.example.com则会得到 Nginxs“404 未找到”页面。

答案1

我昨天花了几个小时摆弄 nginx 和 gogs 配置,但没有成功。

实际工作是在域名的 DNS 配置上设置 A 记录,以便git子域名指向正确的 IP 地址。

相关内容