我正在努力在 RHEL 7 上使用 Apache 2.4 配置 GitLab 8。
到目前为止,我有两个不令人满意的选择:要么我使用以下 Apache 配置文件并使 GitLab 顺利运行,但其他所有应用程序都无法访问:
<VirtualHost *:80>
ServerName server_name
DocumentRoot /opt/gitlab/embedded/service/gitlab-rails/public
ProxyPass / http://localhost:8080/
ProxyPassReverse / http://localhost:8080/
ProxyPassReverse / http://localhost:8081/
<Location />
Require all granted
</Location>
# Custom log file locations
ErrorLog /var/log/httpd/gitlab_error.log
CustomLog /var/log/httpd/gitlab_access.log combined
</VirtualHost>
或者我尝试以下操作,并且其他一切正常,我可以访问 GitLab 登录页面(通过http://server_name/gitlab/users/sign_in
),但是在尝试连接到时失败http://server_name/[stuff]
,而无需/gitlab
:
<VirtualHost *:80>
ServerName server_name
DocumentRoot /opt/gitlab/embedded/service/gitlab-rails/public
ProxyPass /gitlab http://localhost:8080/
ProxyPassReverse /gitlab http://localhost:8080/
ProxyPassReverse /gitlab http://localhost:8081/
<Location /gitlab>
Require all granted
</Location>
# Custom log file locations
ErrorLog /var/log/httpd/gitlab_error.log
CustomLog /var/log/httpd/gitlab_access.log combined
</VirtualHost>
我远不是 Apache 专家,所以我可能忽略了一些明显的问题,但我无法确定这里出了什么问题。
任何帮助将不胜感激!
编辑:
我更改了我的 Apache 配置以将内容重定向到8088
端口:
<VirtualHost *:8088>
ServerName localhost
ServerAlias server-rd
DocumentRoot /opt/gitlab/embedded/service/gitlab-rails/public
ProxyPass / http://localhost:8080
ProxyPassReverse / http://localhost:8080
ProxyPassReverse / http://localhost:8081
<Location />
Require all granted
</Location>
# Custom log file locations
ErrorLog /var/log/httpd/gitlab_error.log
CustomLog /var/log/httpd/gitlab_access.log combined
</VirtualHost>
我还在8088
SELinux 中启用了端口。
其他应用程序运行良好,但我仍然无法访问 GitLab,我的浏览器出现“无法连接”错误。
我尝试连接telnet
,只是为了看看:
telnet localhost 8088
Trying ::1...
Connected to localhost.
Escape character is '^]'.
GET /
<html><body>You are being <a href="http://localhost:8080/users/sign_in">redirected</a>.</body></html>Connection closed by foreign host.
所以它有点起作用了,问题似乎出在这第一步之后。我尝试使用以下命令获取网页wget
:
wget http://localhost:8088
--2015-11-06 16:16:58-- http://localhost:8088/
Résolution de localhost (localhost)... ::1, 127.0.0.1
Connexion vers localhost (localhost)|::1|:8088...connecté.
requête HTTP transmise, en attente de la réponse...302 Found
Emplacement: http://localhost:8088/users/sign_in [suivant]
--2015-11-06 16:16:58-- http://localhost:8088/users/sign_in
Reusing existing connection to [localhost]:8088.
requête HTTP transmise, en attente de la réponse...502 Proxy Error
2015-11-06 16:16:58 ERREUR 502: Proxy Error.
抱歉,有些内容是法语的,但至少最重要的内容显示得很清楚:ERREUR 502: Proxy Error.
我检查过,mod_proxy
已安装并启用,所以我不知道下一步该做什么。
答案1
我建议您为 GitLab 使用单独的 VHost。
如果您不能使用子域名或其他 IP 地址,请对 gitlab 使用不同的端口。
我并不是说这不能按照你想要的方式正确配置,但它会导致通过 Web 和 git 客户端访问时出现很多问题。