
Я пытаюсь использовать Apache для обслуживания нескольких сайтов одновременно. Структура, которую я хочу получить, состоит из основного сайта example.com
и использования поддоменов radarr.example.com
для sonarr.example.com
доступа к моим серверам Radarr и Sonarr.
Основной сайт размещен намашина1Я настроил виртуальный хост с помощью Apache и Certbot:
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerName example.com
WSGIDaemonProcess sflasksite user=www-data group=www-data threads=5
WSGIScriptAlias / /var/www/webapp/app.wsgi
<Directory /var/www/webapp>
WSGIProcessGroup sflasksite
WSGIApplicationGroup %{GLOBAL}
Order deny,allow
Require all granted
</Directory>
Alias /static /var/www/webapp/static
<Directory /var/www/webapp/static/>
Order deny,allow
Require all granted
</Directory>
ErrorLog /var/www/webapp/logs/error.log
CustomLog /var/www/webapp/logs/access.log combined
SSLCertificateFile /etc/letsencrypt/live/example.com-0002/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/example.com-0002/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>
</IfModule>
Два сервера, которые я хочу обслуживать, находятся намашина2, в той же сети, что имашина1, как я могу получить эти две услуги соответственно на radarr.example.com
и sonarr.example.com
?
После некоторого чтения я попытался использоватьОбратный прокси-сервер, настроив виртуальный хост для каждой службы следующим образом:
<VirtualHost *:80>
ProxyPreserveHost On
ProxyRequests Off
ServerAlias radarr.example.com
ProxyPass / http://192.168.1.20:7878/
ProxyPassReverse / http://192.168.1.20:7878/
ErrorLog /var/www/radarr/logs/error.log
CustomLog /var/www/radarr/logs/access.log combined
</VirtualHost>
и то же самое для Sonarr.
Однако когда я перехожу на radarr.example.com
, я не получаю ожидаемого сервиса, а попадаю на основной сайт.
Как мне заставить работать обратный прокси? Или мне вообще переключиться на другую стратегию?
EDIT: Я также готов отказаться от Apache, если кто-то знает и может предложить более простой способ сделать это.
решение1
Я выяснил, что проблема, с которой я столкнулся, была связана с тем, что я установил ssl-сертификаты только для домена mydomain.com, а не для домена radarr.mydomain.com. Я снова запускаю certbot для этого домена, и теперь он работает.
Я не совсем понимаю, почему это работает. Если у кого-то есть объяснение, пожалуйста, напишите его, и я добавлю его в ответ.