Apache中,同一IP使用多域名对应多个网站的方法
首先dns中确定有相应的A记录, abc IN A 211.154.2.5 mail IN A 211.154.2.5 |
这个讲的是在windows下面配置apache虚拟主机:
一、配置虚拟主机需要3个文件
1.Apache/conf/httpd.conf
2.Apache/conf/extra/httpd-vhosts.conf (这个地版本的apache可能没有,可自己创建,也可以不要此文件,
而将配置直接写在httpd.conf里面,写在extra/httpd-vhosts.conf只是为了管理方便,不让httpd.conf文件
内容很多而已)
3.C:\WINDOWS\system32\drivers\etc\hosts
①httpd.conf 找到VirtualHost example,在后面引入httpd-vhosts.conf文件:
Include conf/extra/httpd-vhosts.conf
这个句话,高版本的apache里面已经写有了,只需吧Include前面的#号去掉就OK
②httpd-vhosts.conf配置文件的内容如下:
#
# DocumentRoot 是网站文件存放的根目录
# ServerName 是网站域名, 需要跟 DNS 指向的域名一致
#
#########################################################################################
# http://www.PHPnow.org# filename: httpd-vhosts.conf<Directory ../vhosts>AllowOverride AllOrder allow,denyAllow from all</Directory>NameVirtualHost *<VirtualHost *>DocumentRoot ../htdocsServerName default:80ErrorLog logs/default-error_log</VirtualHost>#<VirtualHost *># ServerAdmin benrenxw522@sina.com# DocumentRoot "D:/htdocs/lxcms"# ServerName cms.weixinyixia.com:80# ServerAlias cms.weixinyixia.com# ErrorLog logs/cms.weixinyixia.com-error_log#</VirtualHost>
=======================================================以下只是参考其他方式~=======================================================================
# Ensure that Apache listens on port 80Listen 80# Listen for virtual host requests on all IP addressesNameVirtualHost *:80<VirtualHost *:80>DocumentRoot /www/deerol_comServerName www.deerol.com# Other directives here#配置域名的目录访问权限<Directory "/www/deerol_com">Options Indexes FollowSymLinksallow from all</Directory></VirtualHost><VirtualHost *:80>DocumentRoot /www/163_comServerName www.163.com# Other directives here#配置域名的目录访问权限<Directory "/www/deerol_com">Options Indexes FollowSymLinksallow from all</Directory></VirtualHost>
以上设置中第一项(即ServerName www.deerol.com)是默认选项。若用户访问所指定的域名不符合所有条目时采用默认项,即指向
www.deerol.com。
在配置时可能遇到的场景:
1.使用域名加端口访问
如果需要带端口访问(这种情况很少,一般会在测试时用到)如:www.domain.com:8081 这时在配置<VirtaulHost> 后,还需要添加对该端口的监听Listen 8081
2.如果服务器上除了Apache服务外还装了IIS(运行asp,asp.net程序),Tomcat(运行java,jsp程序)服务该如何配置?
一般的我们会把Apache默认为80端口,IIS可以设置为81端口,Tomcat设置为8080端口。假设有一jsp程序,在服务器本地配置时我们可以通过http://localhost:8080/document访问。那如何配置通过域名访问到该地址呢?
<VirtualHost *:80>ProxyPreserveHost OnServerName yourdomain.comDirectoryIndex index.jspProxyPass / http://localhost:8080/KBoom/ProxyPassReverse / http://localhost:8080/KBoom/</VirtualHost>
这里我们注意到使用了代理访问。首先开启代理支持ProxyPreserveHost On,然后再配置正向代理和反向代理 ProxyPass / http://localhost:8080/KBoom (kboom为虚拟目录)
<摘自:http://blog.sina.com.cn/s/blog_75ad10100101m5q6.html&http://blog.csdn.net/zhanglei5415/article/details/6821066>