我正在尝试在
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
ufw
(防火墙)由于我的经验很少,所以在这里提问,如果需要,我会在评论部分提供更多信息。
将多个子域与
nginx
一起使用时,每个子域都必须拥有自己的 A record
。子域的 A 记录看起来像这样:
类型 | 姓名 | 内容 |
---|---|---|
A | git | ip |
其他子域名之所以能工作,是因为我几个小时前删除了这样的A记录,以测试相应的服务是否仍然可以访问。但我没想到一个
DNS propagation
会花这么长时间。