【问题标题】:Docker Gitlab container with nginx container带有 nginx 容器的 Docker Gitlab 容器
【发布时间】: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 端口,它将代理传递到同一主机中的不同容器端口

标签: docker nginx gitlab


【解决方案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;
}

【讨论】:

猜你喜欢
  • 2021-09-23
  • 1970-01-01
  • 2017-03-31
  • 1970-01-01
  • 2018-12-04
  • 1970-01-01
  • 1970-01-01
  • 2022-01-22
  • 2021-02-23
相关资源
最近更新 更多