Apache-2.2
為同一個 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>
這個問題有點模棱兩可,但我會盡力提供幫助。
如果您希望同一個虛擬主機在多個埠上偵聽,那麼您可以這樣做:
Listen 80 NameVirtualHost *:80 Listen 8080 NameVirtualHost *:8080 <VirtualHost *:80 *:8080> ServerName some.domain.name ServerAlias some.other.domain.name .... </VirtualHost>
一般來說,您不會定義多個基於名稱的同一個域名的 VirtualHost,除非您需要使用不同的協議。
對於基於 SSL 名稱的虛擬主機,您必須格外小心:根據定義,同一個 IP:Port 上不能有多個證書,因此,為避免證書錯誤,它必須是一個萬用字元證書,涵蓋所有服務的域名。