带有 nginx 容器的 Docker Gitlab 容器
Posted
技术标签:
【中文标题】带有 nginx 容器的 Docker Gitlab 容器【英文标题】:Docker Gitlab container with nginx container 【发布时间】:2021-08-26 00:52:54 【问题描述】:我已经为 proxy_pass 设置了一个 gitlab 容器和 nginx,但无法正常工作。 比如我输入example.com/gitlab,它可以proxy_pass到8086端口。 可以成功显示没有照片的登录页面,并且按钮不起作用。 我发现如果我加回端口号,它可以正常工作http://example.com:8086/projects/new 但是proxy_pass地址是http://example.com/projects/new,找不到文件,显示404。
location /gitlab
proxy_pass http://example.com:8086;
我该如何处理这种情况?http://example.com/projects/new
http://example.com:8086/projects/new
【问题讨论】:
您要从外部访问的域名与您创建proxy_pass的域相同? 是的,你是对的。 Nginx 容器监听 80 和 443 端口,它将代理传递到同一主机中的不同容器端口 【参考方案1】:将GITLAB_HOST
环境传递给容器
docker run -e GITLAB_HOST=http://example.com/gitlab ....
并将请求头和代理端口传递给nginx配置中的代理服务器
location /gitlab
proxy_pass http://example.com:8086;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
【讨论】:
不工作。当您输入:example.com/gitlab 时,它将重定向到:example.com/users/sign_in 你使用的是哪个 Gitlab 镜像 gitlab/gitlab-ee 最新以上是关于带有 nginx 容器的 Docker Gitlab 容器的主要内容,如果未能解决你的问题,请参考以下文章
带有ssl的nginx代理后面的docker容器内的Wordpress
带有外部 nginx 和综合的 gitlab docker 注册表