设为首页 收藏本站
查看: 737|回复: 0

[经验分享] Apache的虚拟主机设置

[复制链接]
累计签到:2 天
连续签到:1 天
发表于 2015-8-2 10:22:15 | 显示全部楼层 |阅读模式
  一台Web服务器如果只放一个主页,似乎有点浪费。那我们是否可以多放几个主页,
  给不同的用户提供不同的主页访问呢?当然可以了,这就需要用到Apache的虚拟主机设置了。
  Apache的虚拟主机分为三类:基于端口的虚拟主机,基于IP的虚拟主机以及基于域名的虚拟主机。下面,我就开始学习虚拟主机的配置吧。
  
  (1) 基于端口的虚拟主机
  Apache提供了基于端口的虚拟主机,这给那些域名和IP地址有限的用户提供了提供多
  个主页的可能。基于端口的虚拟主机,顾名思义,就是采用同样的域名或IP地址,但采用不同的端口来实现提供多个主页访问服务。
  配置虚拟主机,需要用到Apache配置文件虚拟主机部分。具体说明,可以参考Apache配置文件说明部分。下面,我们来实现基于端口的虚拟主机。我们以域名:www.centos.org为例,采用80和8080两个端口来实现基于端口的虚拟主机。
  首先,修改主配置文件,找到以下这行并添加一行:
  Listen 80
  Listen 8080
  这里,让httpd服务监听端口80和8080。否则,配置的虚拟主机将无法正常访问。接下,来修改虚拟主机部分如下:
  #NameVirtualHost*:80
  
  ServerAdmin webmaster@dummy-host.example.com
   DocumentRoot /var/www/virt1
   ServerName www.centos.org
  ErrorLoglogs/dummy-host.example.com-error_log
  CustomLog logs/dummy-host.example.com-access_logcommon
  
  
  ServerAdmin webmaster@dummy-host.example.com
   DocumentRoot /var/www/virt2
   ServerName www.centos.org
  ErrorLog logs/dummy-host.example.com-error_log
  CustomLoglogs/dummy-host.example.com-access_log common
  
  修改完毕!下面,我们去生成相应目录和主页文件。
  [iyunv@localhost~]#mkdir /var/www/virt1 /var/www/virt2
  [iyunv@localhost~]#echo “This isVirtual Host 1!” >/var/www/virt1/index.html
  [iyunv@localhost~]#echo “This isVirtual Host 2!” >/var/www/virt2/index.html
  目录和主要创建完毕,去测试吧。……不,等一下。刚才我们都是以root身份建立的目录和文件,权限肯定有问题,还需要修改权限哦。
  [iyunv@localhost~]#chmod 755 ?R/var/www/virt1 /var/www/virt2
  现在一切OK,可以测试了。
  [iyunv@localhost~]#links www.centos.org
  This is Virtual Host 1!
  [iyunv@localhost~]#links www.centos.org:8080
  This is Virtual Host 2!
  OK,测试正确,任务完成。
  (2) 基于IP的虚拟主机
  基于端口的虚拟主机是对于那些IP地址不宽裕的情况而言的,如果你有充足的IP地址,
  那么可以配置基于IP的虚拟主机。这里,我们将使用192.168.0.38和192.168.0.39两个IP地址来实现基于IP的虚拟主机。
  首先,修改httpd.conf文件如下:
  #NameVirtualHost*:80
  
  ServerAdmin webmaster@dummy-host.example.com
   DocumentRoot /var/www/virt1
   ServerName www.centos.org
  ErrorLoglogs/dummy-host.example.com-error_log
  CustomLoglogs/dummy-host.example.com-access_log common
  
  
  ServerAdmin webmaster@dummy-host.example.com
   DocumentRoot /var/www/virt2
   ServerName www.centos.org
  ErrorLog logs/dummy-host.example.com-error_log
  CustomLoglogs/dummy-host.example.com-access_log common
  
  这里,端口都是80,虚拟主机IP地址分别设置为192.168.0.38和192.168.0.39。修改完毕,可以进行测试了。
  那么,如果IP地址不充裕,又想实现基于IP的虚拟主机该怎么办呢?这里,我们可以通过一个网卡绑定两个IP地址的方法来实现。首先,可以复制一份网卡的配置文件。
  [iyunv@localhost~]#cp/etc/sysconfig/network-script/ifcfg-eth0/etc/sysconfig/network-script/ifcfg-eth0:1
  然后,我们修改ifcfg-eth0:1这个文件的IP地址即可。
  # Advanced Micro Devices [AMD]79c970 [PCnet32 LANCE]
  DEVICE=eth0:1
  BOOTPROTO=static
  BROADCAST=192.168.0.255
  HWADDR=00:0C:29:40:1D:A2
  IPADDR=192.168.0.38
  IPV6INIT=yes
  IPV6_AUTOCONF=yes
  NETMASK=255.255.255.0
  NETWORK=192.168.0.0
  ONBOOT=yes
  修改完毕后,启动此网卡,或者重启网络服务。
  [iyunv@localhost~]#service networkrestart
  Shutting down interfaceeth0: [ OK ]
  Shutting down interfaceeth1: [ OK ]
  Shutting down loopbackinterface: [ OK ]
  Bridging up loopbackinterface: [ OK ]
  Bridging up interface eth0: [ OK ]
  Bridging up interface eth1: [ OK ]
  重启完毕,就可以开始配置基于IP的虚拟主机了。
  
  (3) 基于域名的虚拟主机
  如果只有一个IP地址,但是却有多个域名,那么我们可以实现基于域名的虚拟主机。
  在下面的实验中,我们将用到以下环境:
  IP地址:192.168.0.39
  域名:x.centos.org xx.centos.org
  首先,我们需要让这两个域名能解析到。域名解析可以使用DNS来实现,由于是基于
  域名的虚拟主机,我们只需配置正向解析即可。当然,这里只做实验用,我们采用更为简单的方法,修改/etc/hosts文件如下:
  # Do not remove the followingline, or various programs
  # that require networkfunctionality will fail.
  127.0.0.1 x.centos.org x localhost.localdomain localhost
  ::1 localhost6.localdomain6 localhost6
  192.168.0.39 x.centos.org
  192.168.0.39 xx.centos.org
  修改完毕后,我们将本机DNS设置为192.168.0.39。然后,我们来进行基于域名的虚拟主机配置。首先,修改httpd.conf文件如下:
  NameVirtualHost192.168.0.39:80
  
  ServerAdmin webmaster@dummy-host.example.com
   DocumentRoot /var/www/virt1
   ServerName x.centos.org
  ErrorLoglogs/dummy-host.example.com-error_log
  CustomLoglogs/dummy-host.example.com-access_log common
  
  
  ServerAdmin webmaster@dummy-host.example.com
   DocumentRoot /var/www/virt2
   ServerName xx.centos.org
  ErrorLog logs/dummy-host.example.com-error_log
  CustomLoglogs/dummy-host.example.com-access_log common
  
  然后,保存退出,并重启httpd服务,就可以进行测试了。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-93233-1-1.html 上篇帖子: 服务器并发能力测试 Apache Beach 下篇帖子: Apache里的 MPM 调优比较详细
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表