Назад | Перейти на главную страницу

Размещать несколько сайтов в одном окне

У меня есть несколько инструментов, работающих на разных портах на одной машине. Jenkins, gitea и т. Д. У меня есть настройка CNAME для каждого. jenkins.foo.bar, gitea.foo.bar и т. д. Я пытаюсь настроить его так, чтобы, когда я перехожу на jenkins.foo.bar, он фактически загружает foo.bar:8080, а gitea.foo.bar загружает foo.bar : 3000. До сих пор я пытался настроить проход прокси и обратный проход прокси с httpd 2.4.6.

<VirtualHost gitea.foo.bar:80>
ServerName gitea.foo.bar
ServerAlias gitea.foo.bar gitea.foo
ProxyPreserveHost On
ProxyPass / foo.bar:3000/
ReverseProxyPass / foo.bar:3000/
</VirtualHost>

РЕДАКТИРОВАТЬ: Фактический вопрос ... Первоначально я получал ошибку 403 недоступен. Теперь, когда я захожу на gitea.foo, он правильно перенаправляется на foo.bar:3000. gitea.foo.bar загружает индекс foo.bar и не перехватывается прокси.

Часть 2: Можно ли сохранить gitea.foo в адресной строке и не отображать перенаправленный адрес?

=========================

РЕДАКТИРОВАТЬ (Решение): Большое спасибо @GeraldSchneider

SeLinux блокировал проход прокси. Обратите внимание, это заняло 20 минут

setsebool -P httpd_can_network_connect 1

Переместите ssl.conf в сторону, так как он прослушивал 443.

mv /etc/httpd/conf.d/ssl.conf /etc/hhtpd/conf.d/ssl.conf.bak

Добавьте следующее в /etc/httpd/conf/httpd.conf

Listen 443 https
<VirtualHost *:80>
ServerName gitea.foo.bar
Redirect / httpd://gitea.foo.bar:3000
</VirtualHost>

<VirtualHost _default_:443>
ServerName gitea.foo.bar
SSLEngine On
SSlProxyEngine On
SSLCertificateFile /etc/PATH/TO/gitea.foo.bar.pem
SSLCertificateKeyFIle /etc/PATH/TO/gitea.foo.bar.key
ProxyPass / https://gitea.foo.bar:3000/
ProxyPassReverse / https://gitea.foo.bar:3000/
</VirtualHost>

Отредактируйте конфигурацию gitea /etc/gitea/app.ini

[server]
PROTOCOL = https
ROOT_URL = https://gitea.foo.bar
CERT_FILE = /etc/PATH/TO/gitea.foo.bar.pem
KEY_FILE = /etc/PATH/TO/gitea.foo.bar.key

Ваша конфигурация Apache в порядке, проблема в вашем сервере.

Ваш бэкэнд настроен для URL foo.bar:3000, поэтому он перенаправляется туда, когда НЕ достигается через этот URL.

Вам необходимо настроить внутренние серверы для нового URL-адреса. Как это сделать на каждом сервере приложений по-разному, общее название такой настройки - base url или что-то вроде этого. Прочтите документацию к своим внутренним серверам (jenkins, gitea и т. Д.) О том, как это сделать.

Примеры:

Дженкинс: https://stackoverflow.com/questions/11221238/what-does-jenkins-url-means-in-configuration-settings

Гитеа:

устанавливать [server] ROOT_URL = http://git.example.com/git/ в вашей конфигурации.

Из: https://docs.gitea.io/en-us/reverse-proxies/