У меня есть gitlab и jenkins на одном сервере, работающем на разных портах (80,8180).
Значение 192.168.1.221:8180 - это Дженкинс, а 192.168.1.221:80 - это gitlab.
Я использую другой сервер с работающим на нем Apache для доступа к ним из Интернета с помощью (ssl с certbot).
Когда я делаю проксипасс 1: 1, один сайт будет работать нормально, напр. Дженкинс:
ProxyPass / http://192.168.1.221:8180/
ProxyPassReverse / http://192.168.1.221:8180/
Теперь я хочу получить доступ к своему git и jenkins из одного домена (например, mydomain.com/jenkins/ и mydomain.com/gitlab/).
.
Я пробовал все, начиная с proxypass, переписывая правила и location-s, но пока не могу найти решение, которое сделало бы оба сайта доступными из Интернета.
То, что я пробовал, первое и логичное:
ProxyPass /jenkins/ http://192.168.1.221:8180/
ProxyPassReverse /jenkins/ http://192.168.1.221:8180/
ProxyPass /gitlab/ http://192.168.1.221:80/
ProxyPassReverse /gitlab/ http://192.168.1.221:80/
Не работает.
Перемещение их под тегом «Местоположение» (удаление / jenkins / и / gitlab /).
Не работает.
Следующее:
RewriteEngine On
RewriteRule ^/jenkins/(.*) http://192.168.1.221:8180/$1 [proxy]
ProxyPass / http://192.168.1.221:8180/
ProxyPassReverse / http://192.168.1.221:8180/
RewriteEngine On
RewriteRule ^/gitlab/(.*) http://192.168.1.221:80/$1 [proxy]
ProxyPass / http://192.168.1.221:80/
ProxyPassReverse / http://192.168.1.221:80/
сделает Дженкинс доступным, но:
1) URL, отображаемый в браузере, будет выглядеть как проход прокси 1: 1 (mydomain.com/), что-то вроде победы над целью
2) Gitlab вообще не будет доступен, URL mydomain.com/gitlab/ снова укажет на jenkins, а размещение их в теге Location просто сломает его.
Первый и логичный подход имеет проблемы с перенаправлениями и загрузкой ресурсов. Переход на mydomain.com/gitlab/ перенаправит меня на URL моей страницы входа, но вернет 404, поскольку путь задан как mydomain.com/users/sign_in, а не mydomain.com/gitlab/users/sign_in, как это должно быть. Переход на mydomain.com/gitlab/users/sign_in вручную покажет мне страницу входа в систему, но никакие ресурсы (css и javascript) не могут быть загружены как снова, он пытается загрузить ресурсы из mydomain (.) Com / assets /, а не из mydomain. .com / gitlab / активы /.
Я перепробовал много предложений из-за переполнения стека, но ни одно из них не помогло решить мои проблемы