Apache用端口号区分虚拟主机

2010-10-21
  • 1608
  • 0

Apache是一款开源并且免费的服务器,其强大的功能可以充分满足一般用户的需求,今天我就来与大家分享一下我在Apache下设置用端口号区分虚拟主机的心得。

所谓虚拟主机,又称虚拟服务器、主机空间或是网页空间,虚拟并不是指不存在,而是因为空间是由物理的服务器延伸而来,其硬件系统可以是基于服务器群,或者单个服务器。其技术是互联网服务器采用的节省服务器硬件成本的技术,虚拟主机技术主要应用于HTTP,FTP,EMAIL等多项服务,将一台服务器的某项或者全部服务内容逻辑划分为多个服务单位,对外表现为多个服务器,从而充分利用服务器硬件资源。如果划分是系统级别的,则称为虚拟服务器。

实现虚拟主机的方法是以端口号访问的形式和以IP地址或域名来访问的形式,由于以IP地址或域名来访问的形式略微复杂一点,这里我只介绍以端口号为访问形式的虚拟机。

在这里首先要明确的一点就是:确定你服务器系统的相应端口能够正常访问。

我的操作系统是CentOS,我所要使用到的端口为81,那么我在CentOS下面执行:

# iptables -I INPUT -i eth0 -p tcp --dport 81 -j ACCEPT

# iptables -I OUTPUT -o eth0 -p tcp --sport 81 -j ACCEPT

# /etc/rc.d/init.d/iptables save

就可以打开81端口,否则系统默认是关闭的。

之后用# /etc/init.d/iptables status可以查看81端口的打开情况。

以下为对Apache的具体设置:

打开httpd.conf文件,在其中添加Listen 80,Listen 81,还有将Include etc/extra/httpd-vhosts.conf前的#号去掉。

再找到httpd-vhosts.conf文件,进行相应修改。

以下为httpd-vhosts.conf文件的内容

NameVirtualHost *:80  //这个是默认访问的端口号

<VirtualHost *:80>

ServerAdmin admin@localhost.cn  //管理员的E-mail地址

DocumentRoot 本机的目录  //Apache默认访问的目录

ServerName localhost  //服务器名称

ErrorLog 错误LOG存放目录

CustomLog 自定义LOG存放目录

</VirtualHost>

NameVirtualHost *:81  //这个是虚拟主机访问的端口号

<VirtualHost *:81>

ServerAdmin admin@localhost.cn  //管理员的E-mail地址

DocumentRoot 本机的目录  //虚拟主机访问的目录

ServerName www.XXX.com  //服务器名称

ErrorLog 错误LOG存放目录

CustomLog 自定义LOG存放目录

</VirtualHost>

保存后重启Apache服务,在浏器中输入IP地址,81就可访问相应的目录了,如果还需要加其它的虚拟主机,只要按上面修改就可以了。