我尝试设置Nginx 代理监视器(NGPM)作为 Gitlab 和其他网站/服务的反向代理。Gitlab 本身在具有自己 IP 地址的 docker 容器内运行。NGPM 也在 docker 容器内。两个容器都在 Unraid 服务器上运行(并且都是从“应用程序”安装的,在本例中是预填充的 docker 模板)
我尝试过这个:
https://www.itsfullofstars.de/2019/06/gitlab-behind-a-reverse-proxy/
但这只会导致502 Bad Gateway
Nginx 出现错误。
还尝试了其他一些方法,但我发现大多数链接都谈论将 nginx 与 gitlab 分离,并使用同一台机器上的 nginx 指向一些 gitlab 的东西。
此时,我不明白为什么什么都不起作用,我只是在配置文件中四处寻找,却不知道自己在做什么。我甚至不知道该向您提供什么来帮助我,所以,如果您需要某些东西来帮助我解决问题,我很乐意附上它。
编辑日志:
错误日志如下所示:
2020/06/24 11:55:54 [error] 2834#2834: *1966 connect() failed (113: Host is unreachable) while connecting to upstream, client: 0.0.0.0, server: develop.company.com, request: "GET / HTTP/2.0", upstream: "http://192.168.10.170:80/", host: "develop.company.com", referrer: "http://192.168.10.135:7818/nginx/proxy"
访问日志如下:
[24/Jun/2020:11:49:56 +0200] - 502 502 - GET https develop.company.com "/" [Client 0.0.0.0] [Length 166] [Gzip -] [Sent-to 192.168.10.170] "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:77.0) Gecko/20100101 Firefox/77.0" "http://192.168.10.135:7818/nginx/proxy"
[24/Jun/2020:11:49:56 +0200] - - 499 - GET https develop.company.com "/favicon.ico" [Client 0.0.0.0] [Length 0] [Gzip -] [Sent-to 192.168.10.170] "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:77.0) Gecko/20100101 Firefox/77.0" "-"
请注意,我为了在此处上传而更改了客户端 IP。由于我是从代理和 gitlab 所在的网络内部进行测试,因此这是我们的外部 IP。
编辑配置:
Gitlab:
我只尝试过这个:
external_url="https://develop.company.com
但是还有这个:
nginx['listen_port'] = 80
nginx['listen_https'] = false
我也尝试了 http 变体external_url
。
答案1
在 Unraid 中为 Docker 容器桥接网络连接,而不是给它自己的 IP 地址,这样就解决了问题,反向代理现在似乎运行良好。
这是我所需的所有“设置”。
在 gitlab.rb 文件中,您需要取消注释/设置以下值:
external_url="https://develop.company.com
nginx['listen_port'] = 80
nginx['listen_https'] = false
请注意,https://
这里是必要的。
是的。不知道为什么当 Gitlab 有自己的 IP 地址时这不起作用,但现在它可以按预期工作。