Apache本机不同端口多站点配置 httpd-vhosts.conf文件详解

发布时间:2020-08-21编辑:脚本学堂
本文介绍下,apache中配置本机不同端口、多站点的方法,并详细介绍了httpd-vhosts.conf文件的用法,感兴趣的朋友参考下吧。

本节内容:apache本机不同端口多站点配置

环境: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.2confhttpd.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.2confextra" 目录下,将"NameVirtualHost *:80"改为"NameVirtualHost localhost:80",确定为本机(测试时)。
如果正式启用Internet服务,就把它换成你的服务器的IP地址

虚拟主机基本配置:
 

复制代码 代码示例:

<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.6confresin.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>"。

修改方法:
本地监听端口6800,自己监听:6600,6801:6601。

至此,在本机的Apache上配置不同端口、多站点的内容就介绍完了,希望对大家有所帮助。