08月 17th, 2006Linux下apache单IP配置多虚拟主机
今天讲讲我在Linux下的apache服务器上部署虚拟主机的心得吧
你如果google一下“apache 虚拟机”,会发现约有463,000项符合apache 虚拟主机的查询结果
看了几篇文章,自己试了一下,发现都不行
静下心来,仔细分析了一下我的httpd.conf
使用工具测试
| $ /usr/local/apache2/bin/apachectl -S VirtualHost configuration: 192.168.10.71:8880 192.168.10.71 (/usr/local/apache2/conf/httpd.conf:1038) 192.168.10.71:6680 192.168.10.71 (/usr/local/apache2/conf/httpd.conf:1049) Syntax OK |
说明我的配置文件是可以的
顺带先贴一下我的配置文件参考URL:http://httpd.apache.org/docs/2.2/vhosts/name-based.html
这是apache的官方帮助,相当详细清楚
| <VirtualHost *:80> ServerName www.domain.tld ServerAlias domain.tld *.domain.tld DocumentRoot /www/domain </VirtualHost> <VirtualHost *:80> |
进一步的排查,怀疑是文件目录权限问题,改变之,都是apache/apache了
还是不行。。。
开始更仔细,耐心翻着apache的文档,一篇,一篇。。。
http://httpd.apache.org/docs/2.2/bind.html
在这篇文章发现了这样一个东东,恍然大悟,原来是这样
好了,这次清楚了
原来我的服务器是单IP,我想配置多虚拟主机,只能采用一个IP,多个端口监听的方法,但是我只注意了在VirtualHost部分配置端口,却忘了
在全局配置监听端口,晕死。。。
总结一下单IP,不同端口的虚拟主机的配置步骤:
1。设置全局监听端口,监听几个端口就写几行Listen port_number
e.g
Listen 80
Listen 8000
2。配置<VirtualHost host:port>,具体请参考http://httpd.apache.org/docs/2.2/vhosts/name-based.html
3。使用/usr/local/apache2/bin/apachectl -S检查配置文件的语法
4。建议重启服务
| $ /usr/local/apache2/bin/apachectl graceful |
或者
| $ /usr/local/apache2/bin/apachectl -k restart |
前一种方法不会中断当前的客户端连接,后一种方法则会中断当前客户端的连接
