У меня есть сервер apache2, работающий на машине Mac OS X, с той же машиной, на которой работает Gitlab практически в Ubuntu.
Mac IP: 192.168.0.7
Ubuntu (виртуальный) IP: 192.168.0.12
Я хотел бы, чтобы apache сделал так, чтобы gitlab.mydomain.com переходил на виртуальную машину Ubuntu, а somethingelse.mydomain.com - на Mac.
Я добавил файл (gitlab.mydomain.conf) в /private/etc/apache2/other/
(на Mac) со следующим содержанием
<VirtualHost *:80>
ServerName gitlab.mydomain.com
ProxyPass / http://192.168.0.12
ProxyPassReverse / http://192.168.0.12
ProxyPreserveHost On
</VirtualHost>
Gitlab.yml в файле виртуальной машины Ubuntu содержит
##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.
Есть идеи о том, что не так?
пытаться
<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.
Я думаю, вы недостаточно искали.
/home/gitlab/gitlab/config/unicorn.rb
"#{app_dir}/tmp/sockets/gitlab.socket"
и прокомментируйте это. Раскомментировать строку listen "192.168.0.12:80"
proxy
с участием sudo a2enmod proxy
proxy_http
с участием sudo a2enmod proxy_http
Добавьте это на свой виртуальный хост
<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>
Перезагрузите gitlab и apache
Для всех, кто пришел из Google, это то, что работало в Ubuntu 18.04, apache 2.4.2 и Gitlab Enterprise Edition 12.8.5. Я перешел по следующей ссылке использование-не-связанный-веб-сервер
Пропустил шаг 3, так как мой apache был на том же сервере и загрузил правильный vhost с шага 5 для Apache 2.4.