Apache はサブドメインのローカルホストからサービスを提供します

Apache はサブドメインのローカルホストからサービスを提供します

私は Apache を使用して複数のサイトを同時に提供しようとしています。取得したい構造は、メイン サイトで構成されexample.com、サブドメインを使用してradarr.example.comRadarrsonarr.example.comサーバーと Sonarr サーバーにアクセスします。

メインサイトはマシン1Apache と 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つのサーバーはマシン2、同じネットワーク上のマシン1radarr.example.com、とでそれぞれ 2 つのサービスを取得するにはどうすればよいでしょうか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、期待したサービスではなくメインサイトが表示されます。

リバース プロキシを機能させるにはどうすればよいですか? それとも、まったく別の戦略に切り替える必要がありますか?

編集: 誰かが知っていて、これを行うより簡単な方法を提案できる場合は、Apache を放棄することもできます。

答え1

問題は、SSL 証明書をドメイン mydomain.com にのみインストールし、ドメイン Radar.mydomain.com にはインストールしなかったことによるものであることがわかりました。そのドメインに対して certbot を再度実行すると、正常に動作するようになりました。

なぜそれが機能するのか正確にはわかりません。誰かが説明を持っている場合は、投稿してください。回答に追加します。

関連情報