Aynı VirtualHosts için birden fazla bağlantı noktası bildirme


35

Aynı VirtualHosts için birden fazla bağlantı noktası bildirin:

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' için yeni bir portu ('listen', ServerName, ...) nasıl ilan edebilirim?

Aşağıdaki kodu eklersem, apache 'domain.localhost' (diğer etki alanı) 'nın diğer tüm alt etki alanları için de (çok fazla) çalışır (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>

3
Sadece not etmek için. Https ve https olmayan sanal ana bilgisayara bir birliğe katılamazsınız. <VirtualHost *: 80 *: 443>. 80 "SSLEngine açık" olamaz. SSL ve SSL olmayanlar için 2 ayrı VirtualHost bildirimi olması gerekir.
Gacek

Yanıtlar:


63

Soru biraz belirsiz, ama yardım etmeye çalışacağım.

Aynı sanal ana makinenin birden çok bağlantı noktasında dinlemesini istiyorsanız, bunu yapın:

Listen 80
NameVirtualHost *:80

Listen 8080    
NameVirtualHost *:8080

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

Genel olarak konuşmak gerekirse, farklı bir protokol kullanmanız gerekmedikçe, aynı etki alanı adına sahip birden çok ad tabanlı VirtualHosts tanımlamazsınız.

SSL adına dayalı sanal ana bilgisayarlar için daha fazla dikkatli olmanız gerekir: tanımı gereği aynı IP: Bağlantı Noktasında birden fazla sertifika olamaz, bu nedenle sertifika hatalarını önlemek için sunulan tüm etki alanı adlarını kapsayan bir wilcard sertifikası olması gerekir.


2
1 ancak bazı küçük düzeltme: SSL sertifikaları vardır değil IP adreslere ancak eşit olmalıdır ortak adlar (CN) bağlı ana bilgisayar adını . Ayrıca SNI uzantısıyla aynı IP adresinde farklı sertifikalara sahip birden fazla sanal ana bilgisayara sahip olmak mümkündür. ( en.wikipedia.org/wiki/Server_Name_Indication )
Daniel Rikowski

3
+1 de, SSL için <VirtualHost *: 80 *: 443> olmalıdır
fedmich
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.