<VirtualHost xxx.255.118.79:80>
ServerAdmin hoge@hoge.foo.com
DocumentRoot /var/www/html
ServerName main.foo.com
ErrorLog logs/main.foo.com-error_log
TransferLog logs/main.foo.com-access_log
</VirtualHost>
<VirtualHost xxx.255.118.79:8080>
ServerAdmin hoge@hoge.foo.com
DocumentRoot /opt/another_www/
ServerName anotherhost.foo.com
ErrorLog logs/host.foo.com-error_log
TransferLog logs/host.foo.com-access_log
</VirtualHost>
port が 8080 でアクセスしても /var/www/html を読んでしまいます。
httpd -S で確認したところ、ちゃんと設定できているようにも見えるのですが、何がまちがっているのでしょうか?
[iron@birdwatch html]$ sudo httpd -S
VirtualHost configuration:
xxx.255.118.79:80 main.foo.com (/etc/httpd/conf/httpd.conf:1012)
xxx.255.118.79:8080 anotherhost.foo.com (/etc/httpd/conf/httpd.conf:1020)
Syntax OK
> port が 8080 でアクセスしても /var/www/html を読んでしまいます
/var/www/html をアクセスしてしまうのは、このデフォルトサーバの名前で呼び出されているか、他のバーチャルホストに合致しない場合のハズです。
つまり、(デフォルトではない)バーチャルホストの期待されている呼び出し方ではないのだろうと予想します。
> xxx.255.118.79:8080 anotherhost.foo.com
となっているので、anotherhost.foo.com:8080 でアクセスしないとダメなのでは?
そのとおりでした。Virtual Host を呼び出すのは、Apache が動いているマシンだから、インターナルのIPにしないといけなかったんですね。
2014/01/30 03:50:11<VirtualHost *:8080>
で、期待通り /opt/another_www/ が表示されるようになりました。
ありがとうございました。