用户工具

站点工具


网络服务:apache:同ip多域名多网站

同一IP使用多域名对应多个网站的方法

如果您的Apache的WEB服务器仅有一个ip ,却需要服务多个域名(实际是多个网站的服务)。那么,实现的方法是什么呢?本文将告诉你答案。(你还可以通过对本文中的代码进行修改,来实现不同域名使用相同IP、相同端口或者相同IP、不同端口的功能)。
比如你希望使用同一台web服务器来同时运行www.deerol.comwww.163.com,那么你可以在Apache的配置文件httpd.conf中(一般位于/etc/httpd/conf或/usr/local/apache/conf目录下),添加以下内容: 以下是服务器配置文件(Server configuration)httpd.conf中需要添加的信息

# Ensure that Apache listens on port 80  
Listen 80  
 
# Listen for virtual host requests on all IP addresses  
NameVirtualHost *:80  
 
<VirtualHost *:80>  
 DocumentRoot /www/deerol_com  
 ServerName www.deerol.com  
 
 # Other directives here  
 #配置域名的目录访问权限  
 <Directory "/www/deerol_com">  
      Options Indexes FollowSymLinks  
      allow from all  
 </Directory>  
</VirtualHost>  
 
<VirtualHost *:80>  
 DocumentRoot /www/163_com  
 ServerName www.163.com  
 
 # Other directives here  
 #配置域名的目录访问权限  
 <Directory "/www/deerol_com">  
      Options Indexes FollowSymLinks  
      allow from all  
 </Directory>  
</VirtualHost>

·以上代码应该加入到Apache配置文件httpd.conf中的类似代码的后面;
·DocumentRoot表示网站根目录,ServerName表示需要服务的域名,80表示Apache监听80端口
在你正确写入以上代码之后,apache会就用户访问的域名对应配置中的ServerName选择合适的web目录输出html代码。以上设置中第一项(即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 On  
 ServerName yourdomain.com  
 DirectoryIndex index.jsp  
 ProxyPass / http://localhost:8080/KBoom/  
 ProxyPassReverse / http://localhost:8080/KBoom/  
</VirtualHost>

这里我们注意到使用了代理访问。首先开启代理支持ProxyPreserveHost On,然后再配置正向代理和反向代理 ProxyPass / http://localhost:8080/KBoom (kboom为虚拟目录) 

原文:http://blog.csdn.net/zhanglei5415/article/details/6821066

网络服务/apache/同ip多域名多网站.txt · 最后更改: 2023/06/13 05:25 由 127.0.0.1