自托管的Gitlab服务器无法访问

6
我目前在运行一个自主托管的gitlab-ce实例,该实例是从源代码构建的,并运行在OSX(10.11)服务器上。升级从版本8.5到8.6时出现构建问题后,我回滚到了8.5。在此过程中,配置文件中的某些内容已被破坏。目前,只有在显式包含nginx端口的情况下,在OSX服务器上运行浏览器时,我才能访问我的gitlab站点。如果我尝试使用远程浏览器访问它,无论是否指定端口,都会显示"This site can't be reached"错误。我尝试了各种方法来解决这个问题,但似乎没有任何帮助。由于可能存在大量的配置文件和选项,因此我甚至不知道应从何处查找。
更新: 经过一些额外的尝试和错误,我成功地在本地访问了我的gitlab,而无需指定端口。不幸的是,远程访问仍然困难重重。我真正需要的是一个在OSX上为gitlab工作的NGINX配置实例。
更新2.0: 远程访问问题最终证明是防火墙问题。不过,修复了这个问题之后,我又回到了原点。我可以通过指定端口访问gitlab,但我无法弄清楚如何设置代理以使用默认的Web端口(80)。我知道绑定该端口需要root访问权限,但即使我使用sudo,我仍然会收到“permission denied”错误。
更新3: 正如建议的那样,由于我的问题已超出了原始问题的范围,我已在此处发布了另一个问题: https://serverfault.com/questions/960051/nginx-unable-to-bind-to-port-80-in-osx-server

我猜你的2.0更新应该有自己的问题,但无论如何,要设置nginx代理,请阅读此文档,它应该会帮助你并给你基本的想法。 https://docs.nginx.com/nginx/admin-guide/web-server/reverse-proxy/否则,我建议您开一个新问题,如何使用nginx代理绕过占用的默认端口,因为这个问题已经得到了解答,现在您可以使用非默认端口访问您的自托管gitlab。 - xzesstence
2个回答

2

如果您不是在默认端口上运行,比如http的80端口和https的443端口,那么您只需要包含nginx端口即可。

所以您可能想要更改配置文件并将其设置为默认端口,然后运行

gitlab-ctl restart

使其生效。

祝好!

Original Answer翻译成"最初的回答"


谢谢,但由于其他应用程序正在运行,我无法使用端口80。 - pbuchheit
然后根据您的 Web 服务器尝试使用虚拟主机作为代理,我在生产中使用这个设置,效果很好。 无论如何,您能否将其标记为问题的答案?谢谢。 - xzesstence
不幸的是,即使我可以通过虚拟主机解决端口问题,那也只解决了一半的问题,而且是不太重要的一半。更大的问题是gitlab无法远程访问。 - pbuchheit
你的问题不太清楚 >> 目前,只有在我在运行在OSX服务器上的浏览器中显式包含nginx端口时,我才能访问我的gitlab网站。如果我省略端口号或尝试从远程浏览器访问它,则会出现“无法访问此网站”的错误。<< 我理解的是,你可以通过添加端口号从远程访问它...所以请修正你的问题,或者将我的答案标记为正确答案,因为它是你书面问题的正确答案。检查防火墙中的端口转发。可能有很多原因,所以你需要提供更多信息。 - xzesstence
哦,顺便说一下,如果你拥有完全的服务器控制权,你可以使用Docker和官方的GitLab-CE Docker镜像;)我正在为自己的目的使用它,它非常好用和简单。 - xzesstence
好的,我没有意识到那不是很清楚。就Docker而言,出于性能原因,我已经排除了它。当它正常工作时,我们的GitLab服务器已经让服务器负载很重了。 - pbuchheit

0

Gitlab有一个指南可以在Docker上托管所有这些内容。

如果您想尝试Docker示例,请查看此指南here


1
很遗憾,我相当确定这台服务器没有多余的资源来允许我运行像Docker这样的虚拟环境。 - pbuchheit
好的,如果你还需要帮助,最好把你的nginx文件添加上来,这样我们就可以看一下了。 - Tomos Williams
这个问题已经在3月14日11:28讨论过了,他已经给出了相同的答案。请查看我对他的问题的回答。 - xzesstence

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接