Apache 仮想ホストは、ポート 80 のサーバー名が一致しているにもかかわらず、ポート 443 のデフォルトの仮想ホストを提供します。

Apache 仮想ホストは、ポート 80 のサーバー名が一致しているにもかかわらず、ポート 443 のデフォルトの仮想ホストを提供します。

いくつかの小さな構成変更を除いて、互いにクローンである 2 つのサーバーがあります。これらのサーバーの monitored.*.com サブドメインにアクセスしようとすると、予期しない動作が発生します。

./apache2ctl -S各サーバーで実行すると、次のようになります。

ステージングサーバー

VirtualHost configuration:
wildcard NameVirtualHosts and _default_ servers:
*:443                  is a NameVirtualHost
     default server 010.staging.com (/etc/apache2/sites-enabled/010:2)
     port 443 namevhost 010.staging.com (/etc/apache2/sites-enabled/010:2)
     port 443 namevhost 011.staging.com (/etc/apache2/sites-enabled/011:2)
     port 443 namevhost 013.staging.com (/etc/apache2/sites-enabled/013:2)
*:80                   is a NameVirtualHost
     default server www.production.com (/etc/apache2/sites-enabled/000-default:1)
     port 80 namevhost www.production.com (/etc/apache2/sites-enabled/000-default:1)
     port 80 namevhost monitoring.staging.com (/etc/apache2/sites-enabled/monitoring:1)
Syntax OK

プロダクションサーバー

VirtualHost configuration:
wildcard NameVirtualHosts and _default_ servers:
*:443                  is a NameVirtualHost
     default server de.production.com (/etc/apache2/sites-enabled/de:2)
     port 443 namevhost de.production.com (/etc/apache2/sites-enabled/de:2)
     port 443 namevhost uk.production.com (/etc/apache2/sites-enabled/uk:2)
     port 443 namevhost us.production.com (/etc/apache2/sites-enabled/us:2)
     port 443 namevhost www.production.com (/etc/apache2/sites-enabled/production:2)
*:80                   is a NameVirtualHost
     default server www.production.com (/etc/apache2/sites-enabled/000-default:1)
     port 80 namevhost www.production.com (/etc/apache2/sites-enabled/000-default:1)
     port 80 namevhost monitoring.production.com (/etc/apache2/sites-enabled/monitoring:1)
Syntax OK

000-defaultの設定は両サーバーとも次の通りです

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    ServerName www.production.com
    DocumentRoot /home/user/apache/
    RewriteEngine  on
    RewriteLog      /var/log/apache2/log
    RewriteLogLevel 1
    RewriteCond %{REQUEST_URI}/     !^(/server-status).*$
    RewriteRule ^/(.*)$             https://%{SERVER_NAME}/$1 [R=301,L]
</VirtualHost>

私が抱えている問題は、訪問すると、デフォルトのセキュア ポート サーバーのアプリhttp://monitoring.staging.comにリダイレクトされhttp**s**.monitoring.staging.com、アプリが提供されることです。010.staging.com

運用サーバーは期待どおりに動作し、アプリケーション監視ツールを提供しています。

前述したように、これらのサーバーは両方とも、ごくわずかな構成変更のみを加えたマスター イメージのクローンとして開始されました。必要に応じて、具体的な変更内容を説明することができます。

なぜこのような動作が見られるのか、誰か推測できますか?

ありがとう


アップデート:

これは監視用の Vhost 構成です。

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    ServerName  monitoring.staging.com
    DocumentRoot /var/www/munin
    <Directory /var/www/munin>
            Options FollowSymLinks
            AllowOverride None
    </Directory>
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
    LogLevel notice
    CustomLog /var/log/apache2/access.log combined
    ErrorLog /var/log/apache2/error.log
    ServerSignature On
</VirtualHost>

実際に提供されているアプリの場合:

<IfModule mod_ssl.c>
<VirtualHost *:443>
    ServerAdmin webmaster@localhost
    ServerName 010.staging.com
    RewriteLog      /var/log/apache2/ssl.log
    RewriteRule ^/$                                         /010/home.htm [R=301,L]
    RewriteRule ^/(?!010/|static/|mgt).*$   /010/home.htm [R=301,L]
    SSLCertificateKeyFile   /etc/apache2/ssl/010/apache.key
    SSLCertificateFile      /etc/apache2/ssl/010/apache.crt
    SSLCACertificateFile    /etc/apache2/ssl/010/apache-ca.crt
</VirtualHost>
</IfModule>

答え1

000-defaultステージングの設定を次のように変更することでこの問題を解決しました。

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    ServerName staging.com
    DocumentRoot /home/user/apache/
    RewriteEngine  on
    RewriteLog      /var/log/apache2/log
    RewriteLogLevel 1
    RewriteCond %{REQUEST_URI}/     !^(/server-status).*$
    RewriteRule ^/(.*)$             https://%{SERVER_NAME}/$1 [R=301,L]
</VirtualHost>

変更点は、ServerName が www.production.com から staging.com に変更されたことです。

わからないなぜこれで問題は解決しましたので、Apache の動作と動作を説明できる方には、喜んで正解のチェックマークを付けます。

関連情報