当前位置: > Linux服务器 > apache >

Apache本机不同端口多站点配置:httpd-vhosts.conf

时间:2016-05-27 20:01来源:linux.it.net.cn 作者:IT

环境:Apache2.2.9,Resin-3.1.6,Win Server 2003 
1.解压Resin至任意目录,我的是D:; 
2. 安装Apache,具体操作下一步、下一步即可,其中要配置的地方是需要你填写网站名等信息,这里可以不用管它,全部填写localhost,默认端口 80; 
3.进入Resin目录运行setup.exe,勾选Web Servers中的Apache复选框,并在后面的输入框中填写你的Apache安装目录,我的是D:/Apache2.2; 
4. 打开 Apache的配置文件(D:/Apache2.2/conf/httpd.conf,我的),找到这行:LoadModule caucho_module "D:/resin-3.1.6/win32/apache-2.0/mod_caucho.dll",就是你的Resin安装目录中与Apache整合 的插件模块,不过它默认的是apache-2.0目录下的,使用这个模块,在启动Apache服务器时会出错,必须使apache-2.2目录下的 mod_caucho.dll,修改后为:LoadModule caucho_module "D:/resin-3.1.6/win32/apache-2.2/mod_caucho.dll"; 
5.找到这行:#ServerName localhost:80,将前面的#号去掉(不知道为什么它默认把它注释了); 
6.找到这行:<Directory "D:/Apache2.2/htdocs">,改为<Directory />,如果不改Apache将不会去找虚拟主机配置文件中对应的目录(如果你用localhost访问); 
7.将Options Indexes FollowSymLinks,目录列表,安全设置为将Indexes去掉,不显示目录列表; 
8.将#i nclude conf/extra/httpd-vhosts.conf前面的#号去掉,打开虚拟主机配置; 
至此httpd.conf配置结束. 
下 面对httpd-vhosts.conf进行配置. 
httpd- vhosts.conf在"D:/Apache2.2/conf/extra" 目录下,将"NameVirtualHost *:80"改为"NameVirtualHost localhost:80",确定为你本机(测试时),如果正式启用Internet服务,就把它换成你的服务器的IP地址吧,下面的是虚拟主机基本配 置: 
Xml代码 
<VirtualHost localhost:80>  
    ServerName localhost   
         DocumentRoot E:/workspace/sshDemo/WebRoot   
    Alias /test E:/workspace/test/WebRoot   
    ResinConfigServer 127.0.0.1 6800   
</VirtualHost> 

<VirtualHost localhost:80>
 ServerName localhost
         DocumentRoot E:/workspace/sshDemo/WebRoot
 Alias /test E:/workspace/test/WebRoot
 ResinConfigServer 127.0.0.1 6800
</VirtualHost>


各个元素说明: 
<VirtualHost localhost:80>:localhost为网站域名,80端口可以不写,如果改成别的端口则需要写上,同时还要修改httpd.conf中 的监听端口号:Listen 80 
ServerName:网站域名,同上; 
DocumentRoot:网站程序主目录; 
Alias: 网站中其他的WEB应用的名称及目录位置; 
ResinConfigServer:Resin服务器监听端口,我这里是本地 为:127.0.0.1,如果有多台机器作为服务器,修改成对应IP地址即可; 
以上就将虚拟主机的配置完成了,一个网站对应一 个<VirtualHost xxx.xxx.com></VirtualHost>标记; 


Resin配置: 

Resin 配置文件:D:/Resin-3.1.6/conf/resin.conf,打开并搜索"8080"对应的就是HTTP端口,将HTTP端口注释,因为我 们已经不需要Resin提供WEB服务了,只要让它监听本的端口就行,本地监听端口位置大概在149,这样一行"<server id="" address="127.0.0.1" port="6800"/>",同样如果Apache装在别的机器上,这里就改成这台机器的IP地址了,否则Apache会找不到Resin的端口 的; 


如果想使用多JVM来实现多机器的功能实现: 
一个JVM一个配置文件; 
每个配置文件的监听端口不能相同,要 改<server id="" address="127.0.0.1" port="6800"/>中的port值,6801,6802,...以此类推,Apache与之保持一致; 
将Resin注册成为 Windows服务: 

命令行切换至Resin主目录,运行httpd -install 完成默认resin服务安装,httpd -remove完成默认resin服务卸载,使用多JVM时就不能这样安装,如下: 

httpd -install-as 服务名 -conf 对应resin配置文件; 

httpd -remove-as 服务名 

然后启动Apache与Resin,这时会发现Resin服务只 能启动一个,为什么呢,因为Resin在注册为Windows服务的时候都有一个自己监控的功能,它会占用一个端口:6600,在resin.conf中 大概121行的位置可以看到:"<watchdog-port>6600</watchdog-port>",所当该端口被占 用,resin服务便失败了,修改之,为方便可以这样来修改:本地监听端口6800,自己监听:6600,6801:6601,方便,记忆快. 
这 样就完成了Apache与Resin实现多网站的应用了;


 

(责任编辑:IT)
------分隔线----------------------------