0
我遇到了一個關於Apache 2.4
的問題,它是VirtualHost配置。Apache忽略子域的多個ServerName指令
我得到了一個子域sub.example.com
和一個子域static.sub.example.com
。我嘗試分配不同的DocumentRoot,但是使用下面的配置,它只會導致/var/www/html/
。
<VirtualHost *:80>
ServerName sub.example.com
DocumentRoot /var/www/html/
</VirtualHost>
<VirtualHost *:80>
ServerName static.sub.example.com
DocumentRoot /var/www/html/static/
</VirtualHost>
我在做什麼錯?
附加信息:上面的配置文件在一個文件/etc/apache2/sites-available/000-default.conf
當然啓用(默認情況下)。所有其他配置都是未更改的默認值。服務器在Ubuntu 14.04上運行。
我發現this solution但它不幸沒有爲我工作。
更新:輸出的apachectl -S
:
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 172.19.0.3. Set the 'ServerName' directive globally to suppress this message
VirtualHost configuration:
*:80 is a NameVirtualHost
default server sub.example.com (/etc/apache2/sites-enabled/000-default.conf:1)
port 80 namevhost sub.example.com (/etc/apache2/sites-enabled/000-default.conf:1)
port 80 namevhost static.sub.example.com (/etc/apache2/sites-enabled/000-default.conf:6)
ServerRoot: "/etc/apache2"
Main DocumentRoot: "/var/www"
// Some more lines that are not related I think
更新:尋找解決方案附加信息:
我在我的Web服務器之前運行的反向代理。從反向代理(也阿帕奇2.4)000-default.conf
摘錄:
ProxyPass / http://webserver/ nocanon
ProxyPassReverse / http://webserver/
任何其他virtualhosts正在努力?看起來你根本沒有啓用虛擬主機功能。 – DevilaN
我這麼認爲,是的。我用'apachectl -S'的輸出更新了我的帖子。 – Alex
確保你的文件包含在httpd.conf包含指令中(它通常位於文件的底部) – DevilaN