CentOS/虚拟主机的构建
CentOS | CentOS安装 | CentOS使用手册 |
服务器做为一台独立的主机,对于外界 来说,只拥有一个Global IP地址。也就是说,从某种意义上,在当前的状态下,它作为一台服务器,仅能供一个用户用于发布Web--因为不管让多少个域名指向我们的主机,都等于指向了仅有的一个IP地址(访问的是同一个网站)。
比如在CentOS下,默认的Web目录是/var/www/html/,如果我们将网页放置在这个目录 下,当服务器的IP地址或者指向服务器IP的域名被访问时,所能浏览到的只是/var/www/html/目录下放置的网页的内容。
虽然通过开放用户目录Web发布权限的方法也能够实现多用户使用同一台服务器,但对于拥有域名(类似于“yourname.yeah.net”的指向一个地址的免费域名除外)的一般用户,他们无法将它们的域名指向它们的用户Web目录--因为域名指向的是IP地址,而服务器又只拥有一个Global IP地址。
在本条目中,我们通过构建虚拟主机,来实现一台服务器可以放置多个独立网站的功能。简单地说,虚拟主机就是将一台服务器虚拟为多台服务器,使得虽然服务器 只有一个Global IP地址,但当不同的域名指向服务器仅有的一个Global IP地址时,通过定义好的虚拟主机的规则,来识别哪些域名该指向服务器中哪个Web目录,从而达到服务器中有多个Web目录(包括一般用户的Web目录) (多个网站),也可以通过多个域名指向同一个Global IP地址来实现不同的多个网站在同一台服务器上的同时运作。
关于域名[ ]
在这里所说的域名,指的是顶级域名或动态域名。这些域名都是指向一个IP地址的。为了测试虚拟主机,请准备好至少两个以上的域名。
在这里为了具体,以将CentOS中文网主域名www.centospub.com指向/var/www/html/、digeast.no-ip.info指向/home/digeast/public_html/为例加以说明。
虚拟主机的配置[ ]
在Apache的主配置文件“httpd.conf”中,提供了虚拟主机的配置选项,我们只需修改其中虚拟主机的部分语句,就可以达到构建虚拟主机的目的。但是鉴于虚拟主机可能是更新、修改比较频繁的项目之一(域名的增删、变化等等),我们在/etc/httpd/conf.d/目录下新建一个虚拟主机的配置文件。如下:
[root@sample ~]# vi /etc/httpd/conf/httpd.conf ← 编辑Apache配置文件 #NameVirtualHost *:80 ← 找到这一行,去掉行首的# ↓ NameVirtualHost *:80 ← 变为此状态 # # VirtualHost example: # Almost any Apache directive may go into a VirtualHost container. # The first VirtualHost section is used for requests without a known # server name. # #<VirtualHost *:80> # ServerAdmin webmaster@dummy-host.example.com # DocumentRoot /www/docs/dummy-host.example.com # ServerName dummy-host.example.com # ErrorLog logs/dummy-host.example.com-error_log # CustomLog logs/dummy-host.example.com-access_log common #</VirtualHost> ← 找到这一行,在其下添加如下绿色字体部分: <VirtualHost *:80> ServerAdmin yourname@yourserver.com DocumentRoot /var/www/html ← www.centospub.com所定义的规则 ServerName www.centospub.com ErrorLog logs/error_log CustomLog logs/access_log combined </VirtualHost> <VirtualHost *:80> ServerAdmin yourname@yourserver.com DocumentRoot /home/centospub/public_html ← digeast.no-ip.info所定义的规则 ServerName digeast.no-ip.info ErrorLog logs/centospub_error_log CustomLog logs/centospub_access_log common </VirtualHost>
然后重新启动HTTP服务,使虚拟主机的设置生效。
[root@sample ~]# /etc/rc.d/init.d/httpd restart ← 重新启动HTTP服务 Stopping httpd: [ OK ] Starting httpd: [ OK ]
测试虚拟主机[ ]
通过虚拟主机配置文件中定义好的不同的域名访问,看是否能够按照定义好的规则指向相应的目录(网站)。
[root@sample ~]# echo "My site is www.centospub.com " >> /var/www/html/index.html ← 建立www.centospub.com指向/var/www/html/下的测试页 [root@sample ~]# echo "My site is digeast.no-ip.com" >> /home/centospub/public_html/index.html ← 建立digeast.no-ip.com指向/home/centospub/public_html/下的测试页
然后分别在浏览器输入两个域名,如果每次都能够显示出相应域名的页面,说明虚拟主机已正常工作。
[root@sample ~]# rm -f /var/www/html/index.html ← 删除测试用的遗留文件 [root@sample ~]# rm -f /home/centospub/public_html/index.html ← 删除测试用的遗留文件
如果以后需要增加或改动虚拟主机等,可以通过修改虚拟主机配置文件(/etc/httpd/conf.d/virtualhost.conf),添加新的虚拟主机规则来实现。
参考来源[ ]
http://www.centospub.com/make/virtualhost.html
CentOS使用手册导航 |
---|