HTTPD虚拟主机配置

  • 关于HTTPD的主机类型
    • 中心主机:
    • 虚拟主机:服务器的IP地址,端口等信息都是有限的,如果为每一个HTTPD服务提供独立的公网IP,很浪费资源;
      • 基于IP的虚拟主机:
      • 基于端口的虚拟主机:
      • 基于域名的虚拟主机:准确的表示是主机名称不同,但是IP地址是相同的,为了提供不同的内容,这是通过HTTP协议的头部信息关于hostvalue来进行区别的;
  • 对于HTTPD2.2来说必须使用指令NameVirtualHost来启用虚拟主机;
  • 独立的虚拟主机需要包含的资源:
    • DocumentRoot:
    • IP/Port/Hostname:
    • ServerName:
    • 独立的访问权限控制,各个目录不同应该独立的封装每一个目录;
    • Alias:路径别名;
    • ServerAlias:主机别名;
    • Error logs:日志定义;
    • Location:对于RUL的具体访问方式属性;
    • ScriptAlias表示用于执行CGI脚本的别名;
  • 虚拟主机的定义同样时使用容器来进行定义的,使用虚拟主机必须首先取消中心主机,注释中心主机的DocumentRoot就可以;
<virtualHost Host>

<VirtualHost>
  • host的语法说明:

    • 基于IP:IP+端口,IP1:80,IP2:80
    • 基于端口:IP:80,IP:8080;
    • 基于主机名称:*:80;
  • 首先实现基于IP地址的虚拟主机

  • 首先需要注释DocumentRoot
# vim /etc/httpd/conf/httpd.conf
292 # DocumentRoot "/var/www/html"
  • 添加虚拟主机的配置
# cd /etc/httpd/conf/
# vim ../conf.d/virtual.conf
添加:
172.25.23.2:80>
        ServerName bbs.linux.com
        DocumentRoot "/www/bbs/"


172.25.23.3:80>
        ServerName mail.linux.com
        DocumentRoot "/www/mail/"
  • 然后按照上面的配置创建对应的目录和文件
#  mkdir -pv /www/bbs/
添加:

bbs.virtaul.com

# mkdir -pv /www/mail/ 添加:

mail.virtual.ip.com

# ip addr add 172.25.23.2/24 dev eth0 # /etc/init.d/httpd restart
  • 还需要更改本地的解析,用于提供对于上面不同Serverame的解析
[root@my Desktop]#  vim /etc/hosts  //浏览器所在的主机
172.25.23.2 server2.com server2 bbs.linux.com
172.25.23.3 server3.com server3 mail.linux.com  
  • 基于IP的虚拟主机,应该是不用更改解析的,因为只要通过IP可以直接进行访问就可以了,更改是为了方便使用域名来进行访问,所以添加解析在这里是没有必要的;
  • 接下来通过主机名称访问上面的虚拟IP主机
    HTTPD虚拟主机配置_第1张图片

HTTPD虚拟主机配置_第2张图片

  • 配置基于Port的虚拟主机
  • virtual.conf里面添加
添加或者更改:
172.25.23.2:80>
        ServerName bbs.linux.com
        DocumentRoot "/www/bbs/"


172.25.23.2:8080>
        ServerName news.linux.com
        DocumentRoot "/www/news/"
  • 配置文件中这两项就是基于Port的虚拟主机
  • 接下来还需要更改配置监听端口8080
[root@server3 conf.d]# vim ../conf/httpd.conf
Listen 8080
  • 然后同样需要重新启动服务,或者重新加载配置文件reload服务
[root@server3 conf.d]# /etc/init.d/httpd reload
Reloading httpd: 
  • 直接通过不同的端口来访问主机
    HTTPD虚拟主机配置_第3张图片

HTTPD虚拟主机配置_第4张图片

  • 接下来配置基于主机名的虚拟主机
  • 首先更改配置文件如下
[root@server3 conf.d]# vim virtual.conf 
需要启用指令
 NameVirtualHost 172.25.23.3:80 
172.25.23.3:80>
        ServerName mail.linux.com
        DocumentRoot "/www/mail/"


172.25.23.3:80>
        ServerName dns.linux.com
        DocumentRoot "/www/dns/"
  • 重新加载配置文件
[root@server3 conf.d]# /etc/init.d/httpd reload
Reloading httpd: 
  • 在浏览器所在的主机上面添加解析
[root@my Desktop]# vim /etc/hosts
172.25.23.3 server3.com server3 mail.linux.com dns.linux.com                    
  • 然后通过域名来访问主机
    HTTPD虚拟主机配置_第5张图片

HTTPD虚拟主机配置_第6张图片
* 对于虚拟主机的访问控制支持和中心主机的大部分控制条件


  • 补充一点知识MVC:
    • 脚本解释器执行的结果需要交给各种标记语言来进行美化,为了将这两部分内容分开,
      MVC的机制在百度百科的定义如下:

MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中;
这一段的解释更加容易理解:
MVC开始是存在于桌面程序中的,M是指业务模型,V是指用户界面,C则是控制器,使用MVC的目的是将MV的实现代码分离,从而使同一个程序可以使用不同的表现形式。比如一批统计数据可以分别用柱状图、饼图来表示。C存在的目的则是确保MV的同步,一旦M改变,V应该同步更新。 ——>来自于百度百科

你可能感兴趣的:(Linux运维笔记)