zoukankan      html  css  js  c++  java
  • Apache基于域名、端口、IP的虚拟主机配置(Centos 6.5)

    虚拟主机:部署多个站点,每个站点,希望用不同的域名和站点目录,或者是不同的端口,不同的ip,需要虚拟主机功能。一句话,一个http服务要配置多个站点,就需要虚拟主机。

    虚拟主机分类:基于域名、基于端口、基于ip;所谓的基于**,就是靠**来区分不同的站点,支持各种混合,N多个虚拟主机。

    基于域名的虚拟主机配置如下:

    创建环境:

    站点目录 域名
    /var/html/blog blog.bqh123.com
    /var/html/bbs bbs.bqh123.com
    [root@bqh-119 extra]# mkdir /var/html/{blog,bbs} -p
    [root@bqh-119 extra]# touch /var/html/{blog,bbs}/index.html
    [root@bqh-119 extra]# tree /var/html/
    /var/html/
    ├── bbs
    │   └── index.html
    └── blog
        └── index.html
    
    2 directories, 2 files
    [root@bqh-119 extra]# for name in blog bbs;do echo "http://$name.bqh123.com" >/var/html/$name/index.html;done
    [root@bqh-119 extra]# for name in blog bbs;do  cat /var/html/$name/index.html;done
    http://blog.bqh123.com
    http://bbs.bqh123.com

    配置虚拟主机配置文件:httpd-vhosts.conf

    [root@bqh-119 extra]# vim httpd-vhosts.conf
    
      1 #
      2 # Virtual Hosts
      3 #
      4 # If you want to maintain multiple domains/hostnames on your
      5 # machine you can setup VirtualHost containers for them. Most configurations
      6 # use only name-based virtual hosts so the server doesn't need to worry about
      7 # IP addresses. This is indicated by the asterisks in the directives below.
      8 #
      9 # Please see the documentation at 
     10 # <URL:http://httpd.apache.org/docs/2.2/vhosts/>
     11 # for further details before you try to setup virtual hosts.
     12 #
     13 # You may use the command line option '-S' to verify your virtual host
     14 # configuration.
     15 
     16 #
     17 # Use name-based virtual hosting.
     18 #
     19 NameVirtualHost *:80
     20 
     21 #
     22 # VirtualHost example:
     23 # Almost any Apache directive may go into a VirtualHost container.
     24 # The first VirtualHost section is used for all requests that do not
     25 # match a ServerName or ServerAlias in any <VirtualHost> block.
     26 #
     27 <VirtualHost *:80>
     28     ServerAdmin 1147076062@qq.com
     29     DocumentRoot "/var/html/blog"
     30     ServerName blog.bqh123.com
     31     ServerAlias bg.bqh123.com
     32     ErrorLog "logs/blog-error_log"
     33     CustomLog "logs/blog-access_log" common
     34 </VirtualHost>
     35 
     36 <VirtualHost *:80>
     37     ServerAdmin 1147076062@qq.com
     38     DocumentRoot "/var/html/bbs"
     39     ServerName bbs.bqh123.com
     40     ServerAlias bs.bqh123.com
     41     ErrorLog "logs/bbs-error_log"
     42     CustomLog "logs/bbs-access_log" common
     43 /VirtualHost>

     在主配置文件(httpd.conf)里激活生效:

    • Include conf/extra/httpd-vhosts.conf
    • Include conf/extra/httpd-mpm.conf

    检测配置文件语法错误并刷新配置:

    [root@bqh-119 extra]# ../../bin/apachectl -t
    httpd: apr_sockaddr_info_get() failed for bqh-119
    httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
    Syntax OK
    [root@bqh-119 extra]# ../../bin/apachectl graceful
    httpd: apr_sockaddr_info_get() failed for bqh-119
    httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName

    配置一下hosts解析:

    [root@bqh-119 extra]# cat /etc/hosts
    127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
    ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
    
    192.168.0.119 blog.bqh123.com bbs.bqh123.com

    windows系统,在“C:WindowsSystem32driversetc”下的hosts中配置一下域名解析:

    ----------------------------------------------------------------------------------

    用cur或客户端浏览器测试一下:

    解决方法:

    在主配置文件(httpd.conf)追加一下内容:

     17 <Directory "/var/html">
     18     Options  FollowSymLinks
     19     AllowOverride None
     20     Order allow,deny
     21     Allow from all
     22 </Directory>

    检测配置文件语法错误,刷新配置,从新启动:

    [root@bqh-119 conf]# vim httpd.conf
    [root@bqh-119 conf]# ../bin/apachectl -t
    httpd: apr_sockaddr_info_get() failed for bqh-119
    httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
    Syntax OK
    [root@bqh-119 conf]# ../bin/apachectl graceful
    httpd: apr_sockaddr_info_get() failed for bqh-119
    httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName

    用cur或客户端浏览器测试一下:

    ---------------------------------------------------------------------------------

    ok,Apache基于域名的虚拟主机配置及测试完成。

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    基于端口的虚拟主机配置如下:

    ①在主配置文件httpd.conf里配置监听新增端口:

    ②在虚拟机配置文件httpd-vhosts.conf修改如下:

    ③检测配置文件语法错误,刷新配置,从新启动:

    [root@bqh-119 conf]# ../bin/apachectl -t
    httpd: apr_sockaddr_info_get() failed for bqh-119
    httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
    Syntax OK
    [root@bqh-119 conf]# ../bin/apachectl graceful
    httpd: apr_sockaddr_info_get() failed for bqh-119
    httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
    [root@bqh-119 conf]# netstat -lntup|egrep "80|90"
    tcp        0      0 :::80                       :::*                        LISTEN      1343/httpd          
    tcp        0      0 :::90                       :::*                        LISTEN      1343/httpd 

    ④用cur或客户端浏览器测试一下:

    注:如果不加端口访问,默认以ip的形式解析访问。

    ok,Apache基于端口的虚拟主机配置及测试完成。

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    基于IP的虚拟主机配置如下:

    ①添加别名IP

    ②在虚拟机配置文件httpd-vhosts.conf修改如下:

    ③检测配置文件语法错误,刷新配置,从新启动:

    ④用cur或客户端浏览器测试一下: 

    ok,Apache基于IP的虚拟主机配置及测试完成

  • 相关阅读:
    JavaScript中this指针指向的彻底理解
    JavaScript闭包应用介绍
    Javascript代码中的骚操作
    h2database.com 高级特性
    H2Database高级特性
    BlockingQueue的使用
    谈谈java的BlockingQueue
    Java基于Socket文件传输示例
    java socket 多线程网络传输多个文件
    用JAVA捕获屏幕、屏幕录像、播放
  • 原文地址:https://www.cnblogs.com/su-root/p/11185264.html
Copyright © 2011-2022 走看看