VPS 上の Web アプリ。サブドメインに表示させるにはどうすればよいでしょうか?

VPS 上の Web アプリ。サブドメインに表示させるにはどうすればよいでしょうか?

私は個人用 VPS (Ubuntu 20、Apache2) を使用して Web アプリをホストしています。現在、site1.com と site2.org の 2 つの静的サイトが動作しています。

現在ポート 8065 で利用可能なアプリをインストールしました。例:site2.org:8065

私の質問は、アプリが次のように表示されるようにApacheを設定するにはどうすればよいかということです。このサイトについて? (サブドメイン「mm」付き)。

次のような設定ファイルを作成しました:

# /etc/apache2/sites-available/mm.site2.org.conf
<VirtualHost *:80>
    ServerName mm.site2.org

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined


    ProxyRequests Off
    <Proxy http://localhost:8065/*>       
      Order deny,allow
      Allow from all
    </Proxy>
        
    ProxyPass / http://127.0.0.1:8065/
    ProxyPassReverse / http://127.0.0.1:8065/

    <Location />
      Order allow,deny
      Allow from all
    </Location>

</VirtualHost>

上記の設定を行った後、次のようにしてサービスを再起動するために必要なコマンドを実行しました。

sudo a2ensite mm.site2.org.conf
sudo systemctl reload apache2
sudo service apache2 restart

<Proxy ...>また、いくつかの異なるソースに基づいて、いくつかのソースが示唆するとおりに単純に使用して、Apache conf ファイル内の行のバリエーションも試しました<Proxy *>

関連がある場合、私の DNS 設定は、サイトごとに2 つの A レコード (@および) のみで構成されています。www

出力は次のようsudo apache2ctl -Sになります。

AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 12.345.67.890. Set the 'ServerName' directive globally to suppress this message
VirtualHost configuration:
*:443                  is a NameVirtualHost
         default server site1.com (/etc/apache2/sites-enabled/site1.com-le-ssl.conf:2)
         port 443 namevhost site1.com (/etc/apache2/sites-enabled/site1.com-le-ssl.conf:2)
                 alias www.site1.com
         port 443 namevhost site2.org (/etc/apache2/sites-enabled/site2.org-le-ssl.conf:2)
                 alias www.site2.org
*:80                   is a NameVirtualHost
         default server 12.345.67.890 (/etc/apache2/sites-enabled/000-default.conf:1)
         port 80 namevhost 12.345.67.890 (/etc/apache2/sites-enabled/000-default.conf:1)
         port 80 namevhost site1.com (/etc/apache2/sites-enabled/site1.com.conf:1)
                 alias www.site1.com
         port 80 namevhost site2.org (/etc/apache2/sites-enabled/site2.org.conf:1)
                 alias www.site2.org
ServerRoot: "/etc/apache2"
Main DocumentRoot: "/var/www/html"
Main ErrorLog: "/var/log/apache2/error.log"
Mutex default: dir="/var/run/apache2/" mechanism=default 
Mutex watchdog-callback: using_defaults
Mutex rewrite-map: using_defaults
Mutex ssl-stapling-refresh: using_defaults
Mutex ssl-stapling: using_defaults
Mutex proxy: using_defaults
Mutex ssl-cache: using_defaults
PidFile: "/var/run/apache2/apache2.pid"
Define: DUMP_VHOSTS
Define: DUMP_RUN_CFG
User: name="www-data" id=33
Group: name="www-data" id=33

希望するサブドメインに Web アプリを表示させることができませんでした。

答え1

あなたの書いた内容から判断すると、DNS が適切に構成されていないと思われます。

関連がある場合、私の DNS 設定は、サイトごとに 2 つの A レコード (@ と www) のみで構成されています。

mm.site2.org. A 12.345.67.890サブドメイン、アドレス: 、または cname (エイリアス):の DNS RR を追加する必要がありますmm.site2.org. CNAME www.site2.org.。すべてのサブドメインをこのサーバーに転送するには、RR 名にワイルドカードを使用できます: *.site2.org. A 12.345.67.890(CNAME RR でもおそらく十分です)。(すでにこのように動作すると予想されているようです。)

関連情報