Linux下Web服务器应用之虚拟主机

原创作品,允许转载,转载时请务必以超链接形式标明文章  原始出处  、作者信息和本声明。否则将追究法律责任。 http://xjzhujunjie.blog.51cto.com/3582724/808877

Linux下Web服务器应用之虚拟主机

虚拟主机是在网络服务器上划分出一定的磁盘空间供用户放置站点、应用组件等,提供必要的站点功能、数据存放和传输功能。所谓虚拟主机,也叫“网站空间”,就是把一台运行在互联网上的服务器划分成多个“虚拟”的服务器,每一个虚拟主机都具有独立的域名和完整的Internet服务器(支持WWW,FTP,E-mail等)功能。虚拟主机:通过一个web 服务器可以提供多个网站服务。需要占用一个独特(排他性)的资源来提供服务。
Linux下实现虚拟主机的方法:
1.   物理目录
2.   虚拟目录
3.   基于ip地址的虚拟主机
4.   基于端口的虚拟主机
5.   基于主机头的虚拟主机
主要配置文件:/etc/httpd/conf/httpd.conf
993 #<VirtualHost *:80>
994 #    ServerAdmin webmaster@dummy-host.example.com
995 #    DocumentRoot /www/docs/dummy-host.example.com
996 #    ServerName dummy-host.example.com
997 #    ErrorLog logs/dummy-host.example.com-error_log
998 #    CustomLog logs/dummy-host.example.com-access_log common
999 #</VirtualHost>
案例1:基于物理目录的虚拟主机
[root@www ~]# cd /var/www/html/      #切换至web目录下
[root@www html]# mkdir download      #创建供下载的目录
[root@www download]# touch f1 f2 f3 #创建供下载的文件
[root@www ~]# vim /etc/httpd/conf/httpd.conf     #编辑配置文件

[root@www ~]# service httpd restart          #重启apache服务
Win7客户端测试结果如下:

案例2:基于虚拟目录的虚拟主机
[root@www ~]# mkdir /qq         #创建物理目录
[root@www ~]# cd /qq              #切换至要制作成虚拟的目录
[root@www qq]# touch qq1 qq2 qq3     #创建文件
[root@www qq]# vim /etc/httpd/conf/httpd.conf         #编辑配置文件

[root@www ~]# service httpd restart          #重启apache服务
Win7客户端测试结果如下:

案例3:基于ip地址的虚拟主机
[root@www ~]# cd /var/www/     #切换至www文件目录
[root@www www]# mkdir tec          #创建tec文件夹
[root@www www]# mkdir mkt         #创建mkt文件夹
[root@www www]# cat html/index.html    #编辑www网页文件                          
--www
--xjzhujunjie
--2012/03/17
[root@www www]# cat mkt/index.html    #编辑mkt网页文件 
--mkt
--xjzhujunjie
--2012/03/17
[root@www www]# cat tec/index.html     #编辑tec网页文件
--tec
--xjzhujunjie
--2012/03/17
[root@www ~]# ifconfig eth0:0 192.168.101.251     #新建网卡eth0:0
[root@www ~]# ifconfig eth0:1 192.168.101.252     #新建网卡eth0:0
[root@www ~]# vim /etc/httpd/conf/httpd.conf   #编辑apache配置文件

[root@www ~]# service httpd restart          #重启apache服务
Win7客户端测试在C:\Windows\System32\drivers\etc\hosts添加以下内容:
192.168.101.250          www.junjie.com
192.168.101.251          tec.junjie.com
192.168.101.252          mkt.junjie.com
Win7客户端测试结果如下:

案例4:基于ip端口的虚拟主机(请关闭firewall和 SELinux)
#1.首先关闭eth0:0和eth0:1网卡;
#2.新建网页文件(略)
[root@www ~]# vim /etc/httpd/conf/httpd.conf   #编辑apache配置文件
134 Listen 80
 135 Listen 800
 136 Listen 8000

[root@www ~]# service httpd restart          #重启apache服务
Win7客户端测试在C:\Windows\System32\drivers\etc\hosts添加:
192.168.101.250          www.junjie.com
Win7客户端测试结果如下:

案例5:基于主机头的虚拟主机
#新建网页文件(略)
[root@www ~]# vim /etc/httpd/conf/httpd.conf   #编辑apache配置文件
#首先删除listen 800和listen 8000;
986 NameVirtualHost 192.168.101.250:80

[root@www ~]# service httpd restart          #重启apache服务
Win7客户端测试在C:\Windows\System32\drivers\etc\hosts添加:
192.168.101.250          www.junjie.com
192.168.101.250          tec.junjie.com
192.168.101.250          mkt.junjie.com
Win7客户端测试结果如下:

案例6:基于ip端口的虚拟主机(开启SELinux)
SELinux引起的Apache基于端口的虚拟主机启动失败解决方案
#新建网页文件(略)   #使用端口800和8888
开启SELinux:

[root@www ~]# vim /etc/httpd/conf/httpd.conf   #编辑apache配置文件

 

[root@www ~]# service httpd restart #重启apache服务,无法启动如下示:

因为SELinux设置的是Enforcing(强制)模式,于是使用semanage port -l |grep http,查看如下图,发现如下问题,它支持的端口只有80,443,448,8008,8009.8443并没有800和8888端口

此时可以使用semanage port -a -t http_port_t -p tcp 800来添加SELinux对800和8888端口的支持
[root@junjie ~]# semanage port -a -t http_port_t -p tcp 800
[root@junjie ~]# semanage port -a -t http_port_t -p tcp 8888
接下来查看端口,如下所示(SELinux已经支持800和8888端口):

此时再重新启动apache,看到正常启动。如下所示:

Win7客户端测试在C:\Windows\System32\drivers\etc\hosts添加:
192.168.101.250          www.junjie.com
Win7客户端测试结果如下:(正常访问)

《完》

--xjzhujunjie

--2012/03/17-17:37

本文出自 “xjzhujunjie” 博客,请务必保留此出处http://xjzhujunjie.blog.51cto.com/3582724/808877

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值