Nginx反向代理对于子域不工作

j13ufse2  于 2023-10-17  发布在  Nginx
关注(0)|答案(1)|浏览(221)

我正在尝试在Docker container中设置GitLab的自托管版本。容器的暴露端口应该只能通过在nginx上运行的reverse proxy访问。这样,我就可以在所有server blocks上一致地管理我的ssl-certificates
像往常一样,我添加了另一个服务器块(git.example.com)到包含以下配置的/etc/nginx/sites-enabled目录:

server {
    listen 80;
    listen [::]:80;
    server_name git.example.com;

    location / {
        proxy_pass http://127.0.0.1:80; # points to port 80 inside docker, which is web-interface
    }
}

# Note: strongly simplified version, problem still persists

当我在我的服务器上curl 127.0.0.1:80时,我得到了GitLab的登录页面,确认容器确实正确运行。但是当我尝试访问git.example.com时,浏览器抛出NS_ERROR_UNKNOWN_HOST错误。
我仍然可以通过example.com访问我的主页,以及其他子域,如files.example.com,其中其他子域使用certbot启用了ssl
我的DNS记录:
| 类型|名称|内容|
| --|--|--|
| CNAME| www|example.com|
| 一|在| *IP地址 *|
我尝试的是:

  • 使用systemctl reload nginx重新加载nginx
  • 重新起动系统
  • 禁用ufw(防火墙)

由于我在这里提问的经验很少,如果有要求,我将在评论部分提供进一步的信息。

z9smfwbn

z9smfwbn1#

当使用nginx的多个子域时,每个子域都必须获得自己的A record。子域的A记录看起来像这样:
| 类型|名称|内容|
| --|--|--|
| 一|git| *IP地址 *|
其他子域工作的原因是,我在几个小时前删除了这样的A记录,以测试相应的服务是否仍然可以访问。但我没有想到DNS propagation会花这么长时间。

相关问题