Обратный прокси-сервер с использованием Raspian и Apache
У меня есть несколько машин, на которых работают разные приложения.Недавно я купил Raspberry Pi 4, пытаясь сделать его обратным прокси-сервером для приложений.Допустим, у меня есть три машины A, B и C, где
A: Raspberry Pi 4, на котором работает Raspbian buster lite с установленным Apache2.IP: 192.168.1.2.Я пытаюсь настроить его в обратный прокси-сервер.
B: ВМ под управлением Ubuntu 18.04.IP: 192.168.1.3.Хостинг сервера GitLab.
C: ВМ под управлением Ubuntu 18.04.IP: 192.168.1.4.Хостинг сервера RStudio.
У меня также есть доменное имя с зашифрованным ssl.Допустим, доменное имя example.com
.Поскольку есть несколько приложений, которые я хочу маршрутизировать с помощью A, я хочу, чтобы URL example.com/gitlab
направлялся на B и example.com/rstudio
направлялся на C.
с сохраненным ниже кодомв A:/etc/apache2/sites-available/gitlab.conf
я могу направить example.com
к B. Но это повлияет на маршрутизацию к C.
# Specify path for Logs
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
RewriteEngine on
RewriteCond %{HTTP:Upgrade} !=websocket
RewriteRule /(.*) http://192.168.1.3/(.*) [P,L]
ProxyPass / http://192.168.1.3/
ProxyPassReverse / http://192.168.1.3/
ProxyRequests off
Я также пытался заменить эти /
на /gitlab/
.Но происходит сбой, так как при вводе example.com/gitlab
браузер перенаправляется на example.com/users/sign_in
, а не example.com/gitlab/users/sign_in
, как и должно быть.Пожалуйста, обратитесь к приведенному ниже сценарию
# Specify path for Logs
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
RewriteEngine on
# Following lines should open gitlab directly from the url
# Map gitlab to gitlab/
RedirectMatch ^/gitlab$ /gitlab/
RewriteCond %{HTTP:Upgrade} !=websocket
RewriteRule /gitlab/(.*) http://192.168.1.3/(.*) [P,L]
ProxyPass /gitlab/ http://192.168.1.3/
ProxyPassReverse /gitlab/ http://192.168.1.3/
ProxyRequests off
Как мне настроить apache, чтобы это работало?Большое спасибо!