2015-12-04 16 views
1

我有apache2和虛擬主機的問題。我運行了多個站點的服務器。我有子站點設置指向我的服務器IP。我的客戶,那些選擇擁有自己的域名的客戶將他們的域名/子域名指向我的子域名之一。我已經完成了多個網站,除了現在,它一直在運行,我不知道爲什麼。 這是似乎無法工作的虛擬主機,當我嘗試訪問它時,它總是指向我的默認站點。多個apache2虛擬主機坐 - 除一個以外的所有工作

域重定向是這樣的。 customer.domain.com - > customer.mydomain.com - >服務器IP

<VirtualHost customer.domain.com:443> 
    ServerName customer.domain.com 
    ServerAlias *customer.domain.com *customer.mydomain.com 
    DocumentRoot /var/www/page 

    <Directory /> 
    Order Deny,Allow 
    Deny from all 
    </Directory> 

    <Directory /var/www/page> 
    Options -Indexes +FollowSymLinks +MultiViews 
    AllowOverride All 
    Order allow,deny 
    Allow from all 
    </Directory> 
    ErrorLog /var/log/apache2/customer/logs/error.log 

    LogLevel warn 

    CustomLog /var/log/apache2/customer/logs/access.log combined 

    SSLEngine on 
    SSLCertificateFile  /etc/ssl/certs/ssl-cert-snakeoil.pem 
    SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key 


    BrowserMatch ".*MSIE.*" \ 
    nokeepalive ssl-unclean-shutdown \ 
    downgrade-1.0 force-response-1.0 
</VirtualHost> 

此格式用於所有其他網站,他們引導到正確的文件夾和網站。但是對於這個特定的網站,它總是被定向到默認網站。

我注意到,當我運行apache2ctl -S我得到兩個IP。一個是我的服務器IP與所有的虛擬主機,第二個IP似乎連接到新的虛擬主機,這是不工作的。

52.52.52.52:443  customer.domain.com (/etc/apache2/sites-enabled/006-customer.domain.com.conf:1) 
12.12.12.12:443  is a NameVirtualHost 
     default server default.mydomain.com (/etc/apache2/sites-enabled/001-default.mydomain.com.conf:1) 
     port 443 namevhost default.mydomain.com (/etc/apache2/sites-enabled/001-default.mydomain.com.conf:1) 
       alias www.default.mydomain.com 
     port 443 namevhost customer2.domain.com (/etc/apache2/sites-enabled/002-customer2.domain.com.conf:1) 
       alias www.customer2.domain.com 
       wild alias *subdomain.mydomain.com 
*:80     default.mydomain.com (/etc/apache2/sites-enabled/000-default.conf:1) ..... more 

我不太確定要查找什麼,日誌似乎沒有告訴我任何有用的東西。

關於我可能做錯什麼的想法?謝謝。

+0

更新:我注意到,當我嘗試訪問通過「https://」customer.domain.com網站我得到ERR_CONNECTION_RESET,此網站不可用。沒有https,我直接進入默認站點。 –

+0

可能是由於Listen指令不良或虛擬主機*:443? – covener

+0

@covener你能否詳細說明一下。謝謝。 –

回答

0

您應該不惜一切代價避免將主機名放在<虛擬主機>之內。在典型的系統中,每個虛擬主機中的*:端口就足夠了。

如果您確實在意連接與本地接口相關的接口,則在檢查使用的主機名之前,應放置本地接口地址名稱而不是主機名。但是大多數人根本不在乎使用什麼接口。

使用主機名的特殊風險是它可能無法解析到任何本地接口,在這種情況下,Apache不會將連接映射到它。匹配的每個請求主機名僅匹配最匹配的連接級別信息。