现在的位置: 首页 > 综合 > 正文

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

2012年12月06日 ⁄ 综合 ⁄ 共 2479字 ⁄ 字号 评论关闭

环境: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实现多网站的应用了;

抱歉!评论已关闭.