我正在尝试在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
(防火墙)
由于我在这里提问的经验很少,如果有要求,我将在评论部分提供进一步的信息。
1条答案
按热度按时间z9smfwbn1#
当使用
nginx
的多个子域时,每个子域都必须获得自己的A record
。子域的A记录看起来像这样:| 类型|名称|内容|
| --|--|--|
| 一|git| *IP地址 *|
其他子域工作的原因是,我在几个小时前删除了这样的A记录,以测试相应的服务是否仍然可以访问。但我没有想到
DNS propagation
会花这么长时间。