apache基本配置管理之:apache基于IP,port和域名三种虚拟主机配置方法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了apache基本配置管理之:apache基于IP,port和域名三种虚拟主机配置方法相关的知识,希望对你有一定的参考价值。

apache配置管理

一、基于端口,即基于不同的端口,相同的IP的虚拟主机

     基于相同ip不同port的虚拟主机

 
  1)vi /etc/http/conf/httpd.conf

  2)将Listen字段改为
  Listen 80
  Listen 8888
  (以上设置表示使用80以及8888端口)
  
  3)更改虚拟主机部分为:
  <VirtualHost 192.168.0.1:80>
  DocumentRoot /var/www/html/website1

      ServerName www.website1.com

  </VirtualHost>
  <VirtualHost 192.168.0.1:8888>;
  DocumentRoot /var/www/html/website2

      ServerName www.website2.com

  </VirtualHost>
  
  4)保存以上设置
  
  5)创建目录以及页面文件:
  #mkdir –p /var/www/html/website1
  #mkdir –p /var/www/html/website2
  #cd /var/www/html/website1
  #cat >index.html <<EOF
  >website1
  >EOF
  #cd /var/www/html/website2
  #cat >index.html <<EOF
  >website2
  >EOF

补充关于EOF:

   在shell中,文件分界符(通常写成EOF,你也可以写成FOE或者其他任何字符串)紧跟在<<符号后,  意思是分界符后的内容将被当做标准输入传给<<前面的命令

使用格式基本是这样的: 
命令 << EOF
  内容段
EOF
将“内容段”整个作为命令的输入。
你的代码里就是用cat命令读入整段字符串并赋值给list变量。
其实,不一定要用EOF,只要是“内容段”中没有出现的字符串,都可以用来替代EOF,只是一个起始和结束的标志罢了。
 
有个特殊用法不得不说:
: << COMMENTBLOCK
   shell脚本
COMMENTBLOCK
这个用来注释整段脚本代码。 : 是shell中的空语句。
 
搜索一下 Here document 你会明白更多。

     (注:在/etc/httpd/conf/httpd.conf中有DirectoryIndex index.html index.html.var,表示只读index.html,而不读index.htm,切记)
  
  6)service httpd restart
  
  完成以上设置后,可以通过以下方式访问:
  
  1)打开浏览器
  
  2)输入http://192.168.0.1:80以及http://192.168.0.1:8888
  
 二、基于IP,即基于不同IP,相同端口的虚拟主机

       基于相同Port不同IP的虚拟主机
  
  1)不同IP地址的配置:
  #cd /etc/sysconfig/network-scripts
  #cp ifcfg-eth0 ifcfg-eth0:1
  #vi ifcfg-eth0:1
  将eth0:1更改为:
  DEVICE=eth0:1
  ONBOOT=YES
  BOOTPROTO=static
  IPADDR=192.168.0.2
  NETMASK=255.255.255.0

       ifconfig eth0:1 192.168.1.11 临时生效,需要写入到/etc/sysconfig/network-scripts/ifcfg-eth0:1配置文件
  2)service network restart
  3)vi /etc/httpd/conf/httpd.conf
  4)更改虚拟主机部分为:
  <VirtualHost 192.168.0.1:80>
  DocumentRoot /var/www/html/website1
  </VirtualHost>
  <VirtualHost 192.168.0.2:80>
  DocumentRoot /var/www/html/website2
  </VirtualHost>
  5)创建目录以及页面文件:
  #mkdir –p /var/www/html/website1
  #mkdir –p /var/www/html/website2
  #cd /var/www/html/website1
  #cat >index.html <<EOF
  >website1
  >EOF
  #cd /var/www/html/website2
  #cat >index.html <<EOF
  >website2
  >EOF
  
  完成以上设置后,可以通过以下方式访问:
  
  1)打开浏览器
  2)输入http://192.168.0.1:80以及http://192.168.0.2:80

三、基于主机名,即基于域名的虚拟主机的访问
  

  3.基于域名的虚拟主机的访问

       1) 设置域名映射同一个IP,修改/etc/hosts:

        192.168.0.1  www1.example.com
       192.168.0.1  www2.example.com


  2)创建目录以及页面文件:
  #mkdir –p /var/www/html/website1
  #mkdir –p /var/www/html/website2
  #cd /var/www/html/website1
  #cat >index.html <<EOF
  >website1
  >EOF
  #cd /var/www/html/website2
  #cat >index.html <<EOF
  >website2
  >EOF
  

       3)在httpd-vhosts.conf配置虚拟主机部分为:
  NameVirtualHost 192.168.0.1   [NameVirtualHost *.80]
  <VirtualHost www1.example.com>
  DocumentRoot /var/www/html/website1
  ServerName www1.example.com
  </VirtualHost>
  <VirtualHost www2.example.com>
  DocumentRoot /var/www/html/website2
  ServerName www2.example.com
  </VirtualHost>
  (注:以上设置中NameVirtualHost不可以省略)


    4)完成以上设置后,可以通过以下方式访问:
  1)打开浏览器
  2)输入http://www1.example.com 以及 http://www2.example.com 

发现不能正常访问,配置的虚 含进来,在http.conf中搜索vhost这行,然后开启该行,然后重启动服务即可。


       

  为了使用基于域名的虚拟主机,必须指定服务器IP地址(和可能的端口)来使主机接受请求。可以用NameVirtualHost指令来进行配置。 如果服务器上所有的IP地址都会用到, 你可以用*作为NameVirtualHost的参数。在NameVirtualHost指令中指明IP地址并不会使服务器自动侦听那个IP地址。 这里设定的IP地址必须对应服务器上的一个网络接口。

  下一步就是为你建立的每个虚拟主机设定<VirtualHost>配置块,<VirtualHost>的参数与NameVirtualHost指令的参数是一样的。每个<VirtualHost>定义块中,至少都会有一个ServerName指令来指定伺服哪个主机和一个DocumentRoot指令来说明这个主机的内容存在于文件系统的什么地方。

  如果在现有的web服务器上增加虚拟主机,必须也为现存的主机建造一个<VirtualHost>定义块。其中ServerName和DocumentRoot所包含的内容应该与全局的保持一致,且要放在配置文件的最前面,扮演默认主机的角色。

     

NameVirtualHost *:80
<VirtualHost *:80>  

  ServerName *

  DocumentRoot /www/ 

</VirtualHost>

<VirtualHost *:80>

  ServerName www.test1.com

  DocumentRoot /www/test1/

  <Directory "/www/test1">

    Options Indexes FollowSymLinks

    AllowOverride None

    Order allow,deny

    Allow from all

  </Directory>

</VirtualHost>

 

<VirtualHost *:80>

  ServerName www.test2.com

  DocumentRoot /www/test2/

  <Directory "/www/test2">

    Options Indexes FollowSymLinks

    AllowOverride None

    Order allow,deny

    Allow from all

  </Directory>

</VirtualHost>

<VirtualHost *:80>

  ServerName www.test3.com

  DocumentRoot /www/test3/

  <Directory "/www/test3">

    Options Indexes FollowSymLinks

    AllowOverride None

    Order allow,deny

    Allow from all

  </Directory>

</VirtualHost>


参考地址:

http://www.cnblogs.com/hi-bazinga/archive/2012/04/23/2466605.html

http://blog.csdn.net/joliny/article/details/2514293




   




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

以上是关于apache基本配置管理之:apache基于IP,port和域名三种虚拟主机配置方法的主要内容,如果未能解决你的问题,请参考以下文章

CentOS 7运维管理笔记----Apache 基于 IP 的虚拟主机配置

Apache 配置虚拟主机之3--基于IP+Port结合

httpd服务器之——Apache的相关配置与应用

详解CentOS配置和管理web服务-Apache

CentOS 7运维管理笔记----Apache基于域名的虚拟主机配置

CentOS 7运维管理笔记----Apache 基于端口的虚拟主机配置