Nginx 子域反向代理不起作用

问题描述 投票:0回答:1

我正在尝试在

GitLab
中设置
Docker container
的自托管版本。容器的暴露端口只能通过在
reverse proxy
上运行的
nginx
访问。这样,我就可以在所有
ssl-certificates
上始终如一地管理我的
server blocks

一如既往,我将另一个服务器块(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 记录:

类型 姓名 内容
域名 www example.com
A @ ip

我尝试过的:

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

由于我的经验很少,所以在这里提问,如果需要,我会在评论部分提供更多信息。

docker nginx docker-compose proxy reverse-proxy
1个回答
0
投票

将多个子域与

nginx
一起使用时,每个子域都必须拥有自己的
A record
。子域的 A 记录看起来像这样:

类型 姓名 内容
A git ip

其他子域名之所以能工作,是因为我几个小时前删除了这样的A记录,以测试相应的服务是否仍然可以访问。但我没想到一个

DNS propagation
会花这么长时间。

© www.soinside.com 2019 - 2024. All rights reserved.