web-dev-qa-db-ja.com

同じVirtualHostsに複数のポートを宣言する

同じVirtualHostsに複数のポートを宣言します。

SSLStrictSNIVHostCheck off
# Apache setup which will listen for and accept SSL connections on port 443.
Listen 443
# Listen for virtual Host requests on all IP addresses
NameVirtualHost *:443

<VirtualHost *:443>
  ServerName domain.localhost
  DocumentRoot "/Users/<my_user_name>/Sites/domain/public"
  <Directory "/Users/<my_user_name>/Sites/domain/public">
    Order allow,deny
    Allow from all
  </Directory>

  # SSL Configuration
  SSLEngine on
  ...
</VirtualHost>

「domain.localhost」の新しいポート(「listen」、ServerNameなど)を宣言するにはどうすればよいですか?

次のコードを追加すると、Apacheは 'domain.localhost'の他のすべてのサブドメイン(subdomain1.domain.localhost、subdomain2.domain.localhostなど)でも(多すぎる)動作します。

<VirtualHost *:80>
  ServerName pjtmain.localhost:80
  DocumentRoot "/Users/Toto85/Sites/pjtmain/public"
  RackEnv development
  <Directory "/Users/Toto85/Sites/pjtmain/public">
    Order allow,deny
    Allow from all
  </Directory>
</VirtualHost>
37
user65567

質問があいまいですが、私がお手伝いします。

同じ仮想ホストを複数のポートでリッスンする場合は、次のようにします。

Listen 80
NameVirtualHost *:80

Listen 8080    
NameVirtualHost *:8080

<VirtualHost *:80 *:8080>
  ServerName some.domain.name
  ServerAlias some.other.domain.name
  ....
</VirtualHost>

一般的に言えば、異なるプロトコルを使用する必要がない限り、同じドメイン名の複数の名前ベースのVirtualHostsを定義することはありません。

SSL名ベースの仮想ホストの場合は、さらに注意する必要があります。定義上、同じIP:Portに複数の証明書を含めることはできません。そのため、証明書エラーを回避するには、提供されるすべてのドメイン名をカバーするワイルドカード証明書である必要があります。

65
user65677