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就可访问相应的目录了,如果还需要加其它的虚拟主机,只要按上面修改就可以了。