Gitlab 与 apache 代理

Gitlab 与 apache 代理

我在 Mac OS X 机器上有一个 apache2 服务器,同一台机器在 Ubuntu 中虚拟运行 Gitlab。

Mac IP:192.168.0.7

Ubuntu(虚拟)IP:192.168.0.12

我希望 apache 让 gitlab.mydomain.com 转到 Ubuntu 虚拟机,而让 anyelse.mydomain.com 转到 Mac。

/private/etc/apache2/other/我在 Mac 上添加了一个文件(gitlab.mydomain.conf) ,内容如下

<VirtualHost *:80>
  ServerName gitlab.mydomain.com
  ProxyPass / http://192.168.0.12
  ProxyPassReverse / http://192.168.0.12
  ProxyPreserveHost On

</VirtualHost>

Ubuntu 虚拟机文件上的 gitlab.yml 包含

##Gitlab settings
gitlab:
  ## Web server settings
  host: gitlab.mydomain.com
  port: 80
  https: false

当我去时gitlab.mydomain.com出现以下错误:

Proxy Error

The proxy server received an invalid response from an upstream server.
The proxy server could not handle the request GET /users/sign_in.

Reason: DNS lookup failure for: 192.168.0.12users

但如果我去,192.168.0.12我会看到 Gitlab 登录页面。

对于哪里出了问题您有什么想法吗?

答案1

尝试

<VirtualHost *:80>
  ServerName gitlab.mydomain.com
  ProxyPass / http://192.168.0.12/
  ProxyPassReverse / http://192.168.0.12/
  ProxyPreserveHost On
</VirtualHost>

mod_proxy ProxyPass 文档

If the first argument ends with a trailing /, the second argument
should also end with a trailing / and vice versa. Otherwise the
resulting requests to the backend may miss some needed slashes and
do not deliver the expected results.

答案2

我猜你搜索的还不够。

  1. 您需要编辑文件/home/gitlab/gitlab/config/unicorn.rb
  2. 找到 listen 行"#{app_dir}/tmp/sockets/gitlab.socket"并注释掉它。取消注释行listen "192.168.0.12:80"
  3. proxy使用以下命令启用 apache 模块sudo a2enmod proxy
  4. proxy_http使用以下命令启用 apache 模块sudo a2enmod proxy_http
  5. 将其添加到您的虚拟主机

    <VirtualHost *:80>
    ServerName gitlab.mydomain.com
    
    # Custom log file locations
    ErrorLog /var/log/apache2/gitlab_error.log
    CustomLog /var/log/apache2/gitlab_access.log combined
    
    ProxyRequests Off
    ProxyPreserveHost On
    ProxyPass / http://192.168.0.12/
    <Location />
        ProxyPassReverse /
        Order deny,allow
        Allow from all
    </Location>
    

  6. 重启 gitlab 和 apache

  7. 玩得开心。

https://gist.github.com/steve-todorov/4758707

答案3

对于来自 Google 的人来说,这是在 Ubuntu 18.04、apache 2.4.2 和 Gitlab 企业版 12.8.5 上有效的方法。我点击了以下链接使用非捆绑的 Web 服务器

跳过步骤 3,因为我的 apache 在同一台服务器上,并从步骤 5 为 Apache 2.4 下载了正确的 vhost。

相关内容