配置虚拟主机三种艺术,3认证及虚拟主机

By admin in 美高梅手机版4858 on 2019年5月4日

httpd配置内容

httpd2.2
配置文件:
    /etc/httpd/conf/httpd.conf
    /etc/httpd/conf.d/*.conf
服务脚本:
    /etc/rc.d/init.d/httpd
脚本配置文件:
    /etc/sysconfig/httpd
主程序文件:
    /usr/sbin/httpd
    /usr/sbin/httpd.event
    /usr/sbin/httpd.worker
日志文件:
    /var/log/httpd:access_log:访问日志,error_log:错误日志
站点文档:
    /var/www/html
模块文件路径:
    /usr/lib64/httpd/modules    
服务控制和启动:
    chkconfig  httpd  on|off
    service {start|stop|restart|status|configtest|reload} httpd
httpd2.4
配置文件:
    /etc/httpd/conf/httpd.conf
    /etc/httpd/conf.d/*.conf
模块相关的配置文件:
    /etc/httpd/conf.modules.d/*.conf
systemd unit file:
    /usr/lib/systemd/system/httpd.service
主程序文件:
    /usr/sbin/httpd(httpd-2.4支持MPM的动态切换)
日志文件:
    /var/log/httpd: access_log:访问日志,    error_log:错误日志
站点文档:
    /var/www/html
模块文件路径:
    /usr/lib64/httpd/modules    
服务控制:
    systemctl enable|disable httpd.service
    systemctl {start|stop|restart|status} httpd.service

一、修改域名访问格局:

一、基于IP

httpd的根底配置

壹)修改监听的ip和port,在主配置文件/etc/httpd/conf/httpd.conf中期维修改,格式如:Listen 
[IP:]PORT。需求专注的有叁点:

  一省略IP表示相配本机全部ip;
  二Listen指令可另行现身数十次;
  3修改监听socket,重启服务进程方可生效。

  示例:

[root@happiness ~]# vim /etc/httpd/conf/httpd.conf
    Listen 80
    Listen 192.168.4.50:8090
[root@happiness ~]# systemctl start httpd.service
[root@happiness ~]# ss -tan
State       Recv-Q Send-Q             Local Address:Port                            Peer Address:Port              
LISTEN      0      128                 192.168.4.50:8080                                       *:*                  
LISTEN      0      5                  192.168.122.1:53                                         *:*                  
LISTEN      0      128                            *:22                                         *:*                  
LISTEN      0      128                    127.0.0.1:631                                        *:*                  
LISTEN      0      100                    127.0.0.1:25                                         *:*                  
ESTAB       0      52                 192.168.4.119:22                              192.168.4.93:49948              
LISTEN      0      128                           :::80                                        :::*                  
LISTEN      0      128                           :::22                                        :::*                  
LISTEN      0      128                          ::1:631                                       :::*                  
LISTEN      0      100                          ::1:25                                        :::* 

2)长连接。tcp延续构建后,每种能源得到成功后不全断开连接,而是继续伺机别的能源请求的举行。对并发访问量极大的服务器,长连接机制会使得后续有些请求无法获得正常响应,对那种地方,我们得以行使非常短的细水长流连接时间长度,以及较少的伸手数量。

  配置指令:

    KeepAlive On|Off        #是还是不是启用长连接
    KeepAliveTimeout Seconds     #过期时间长度
    MaxKeepAliveRequests Number       #最多维持稍稍个长连接的呼吁

  示例:

[root@happiness ~]# vim /etc/httpd/conf.d/keepalive.conf  #新建
    KeepAlive On
    KeepAliveTimeout 30
    MaxKeepAliveRequests 200
[root@happiness ~]# systemctl restart httpd.service
[root@happiness ~]# telnet 192.168.4.50 8080
Trying 192.168.4.50...
Connected to 192.168.4.50.
Escape character is '^]'.
GET /index.html HTTP/1.1     
HOST:192.168.4.50    #输入后连按两次Enter

HTTP/1.1 200 OK
Date: Fri, 08 Jun 2018 04:25:03 GMT
Server: Apache/2.4.6 (CentOS)
Last-Modified: Fri, 08 Jun 2018 01:50:41 GMT
ETag: "17-56e17a0a33249"
Accept-Ranges: bytes
Content-Length: 23
Content-Type: text/html; charset=UTF-8

<h2>hello, world.</h2>
#注意:此处因为启用了KeepAlive,连接没有断开,可以继续输入内容;如果没有启用KeepAlive则请求成功后会直接退出telnet

3)自定义web站点。在httpd服务的主配置文件中,暗许意况下DocumentRoot
“/var/www/html”定义了暗中同意web站点目录的门道。如需自定义站点,需按如下格式举行增添:

  httpd-2.2:

    DocumentRoot   “/PATH/TO/FILE”
    <Directory “/PATH/TO/FILE”>              
      Options Indexes FollowSymLinks
      AllowOverride None 
 #用于定义各样目录下.htaccess文件中的指令类型,但一般设置None
      Order
allow,deny #概念暗中同意的拜访权限与Allow和Deny语句的管理顺序,此处先相称allow再匹配deny
      Allow from all 
#针对客户机的域名或IP地址进行走访限制,如:Allow from all恐怕Deny from
1九二.16捌等
    </Directory>

  httpd-2.4:

    DocumentRoot   “/PATH/TO/FILE”
    <Directory “/PATH/TO/FILE”>
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all
granted  #http-二.4中的允许全部人访问,如果要禁止有些IP或域名的拜访,如:Require
not ip 壹.壹.一.一、Require not host xxxx.com或许禁止全数人访问Require all
denied
     </Directory>

个中options包含以下的可选参数:

参数 说明
Indexes 允许目录浏览,当客户仅指定要访问的目录,但没有指定要访问的文件,且目录下不存在默认文档时,显示该目录中的文件及子目录列表索引
MultiViews 允许内容协商的多重视图,允许返回指定的访问目录下的相关联的文件
All All包含了除MultiViews之外的所有特性,如没有指定options,默认为All
ExecCGI 允许在该目录下执行CGI脚本
FollowSymLinks 允许跟踪符号链接到源文件
Includes 允许服务器端包含功能
IncludesNoExec 允许服务器端包含功能,但禁止执行CGI脚本
None 不调用options参数

 

 

 

 

 

 

 

 

 

  示例:

[root@happiness ~]# mkdir -p /test/html
[root@happiness ~]# vim /test/html/test.html
   <h2>test web站点</h2>
[root@happiness ~]# chcon -R --reference /var/www/html /test/html #复制/var/www/html的selinux安全上下文到/data/html,如果没复制安全上下文可能会导致访问index.html出现403的提示
[root@happiness ~]# vim /etc/httpd/conf/httpd.conf
   #DocumentRoot "/var/www/html"  #注释默认的web根站点
   DocumentRoot "/test/html"  #定义要启用的web根站点
   <Directory "/test/html">
        Options None
        AllowOverride None
        Require all granted
   </Directory>
[root@happiness ~]# systemctl restart httpd.service
结果:

美高梅手机版4858 1

一、基于用户的访问调整

运行:C:\WINDOWS\system32\drivers\etc

 一.
只要服务器有个IP地址为192.16八.一.10,使用ifconfig在同叁个互连网接口eth0上绑定3个IP:

httpd的访问调整

一)在Directory中基于IP地址达成访问调整

  http-2.2中基于IP地址的访问调整是使用Allow和Deny来促成的,如:
      <Directory  “/PATH/TO/FILE”>
          Options Indexes FollowSymLinks
          AllowOverride None
          Order allow, deny
          Allow  from  IP | NetAddr
          Deny  from  IP | NetAddr
      </Directory>
  当中NetAddr的格式可类似:172.1陆、172.1陆.0.0、17二.1六.0.0/1六、17二.1陆.0.0/25伍.255.0.0。

  httpd-贰.四中基于Ip地址访问的主宰是应用Require落成,如:
      <Directory  “/PATH/TO/FILE”>
         AllowOverride none
         Options none
         <RequireAll>
            Require ip IP | NetAddr #允许访问的IP或网段
            Require not ip IP | NetAddr
#拒绝访问的Ip或网段
         </RequireAll>
      </Directory>
  其余httpd-二.四版本中仍是能够使用host名来举行访问调控,如:
      <Directory  “/PATH/TO/FILE”>
         AllowOverride none
         Options none
         <RequireAll>
           Require host
google.com  #同意来自域名字为google.com全体主机的走访
           Require not host
www.xxxx.com  #不允许来自己作主机名称叫www.xxxx.com的拜访
         </RequireAll>
      </Directory>

  示例:

[root@happiness ~]# mkdir /test/virtualhtml
[root@happiness ~]# vim /test/virtualhtml/virtualtest.html
     <h2>test for virtual</h2>
[root@happiness ~]# vim /etc/httpd/conf.d/virualhost.conf
  <VirtualHost 192.168.4.50:8080>
      DocumentRoot "/test/virtualhtml"
      <Directory "/test/virtualhtml">
          AllowOverride None
          Options None
          <RequireAll>
              Require all granted
              Require not ip 192.168.4.154    #禁止ip192.168.4.154的主机访问
          </RequireAll>
      </Directory>
  </VirtualHost>
结果:

美高梅手机版4858 2  美高梅手机版4858 3

 二)在Directory中基于用户的访问调控

  在Directory中帮助的表明格局有三种 basic明文认证和
digest音讯摘要认证,不是颇具浏览器都扶助摘要认证,因而一般的话用的较多的是
basic明文认证。
  用htpasswd命令生成认证的布局文件:

[root@happiness ~]# htpasswd -cb /data/httpduser walter 123456
[root@happiness ~]# htpasswd -b /data/httpduser alex 123456
[root@happiness ~]# cat /data/httpduser 
  walter:$apr1$CYZpqBy5$gxnNCiKSIX.qN8LRI809L.
  alex:$apr1$vGncT2dc$.S0TsnDFINqf5BhHP0Hvi.
[root@happiness ~]# chcon -R --reference /var/www /data/httpduser

  编辑主配置文件:

[root@happiness ~]# vim /etc/httpd/conf/httpd.conf
DocumentRoot "/test/html"
<Directory "/test/html">
    Options None
    AllowOverride None
    AuthType Basic  #认证方式Basic
    AuthName "user test"    #授权机制名称
    AuthUserFile "/data/httpduser"  #授权文件位置
    Require user alex  #允许访问的用户
</Directory>
[root@happiness ~]# systemctl restart httpd.service
结果:

美高梅手机版4858 4  美高梅手机版4858 5  美高梅手机版4858 6

 3)基于组的用户访问调节

  除了对用户做访问调整之外,仍是可以将用户划分为对应的组从而依据组来做相应的访问控制,接着上3个例子中的用户来做组访问调控。
  创立组文件:

[root@happiness ~]# vim /data/httpdgroup
   groupA:walter
   groupB:alex
[root@happiness ~]# chcon -R --reference /var/www /data/httpdgroup

  编辑主配置文件:

[root@happiness ~]# vim /etc/httpd/conf/httpd.conf
DocumentRoot "/test/html"
<Directory "/test/html">
    Options None
    AllowOverride None
    AuthType Basic  #认证方式Basic
    AuthName "user test"    #授权机制名称
    AuthUserFile "/data/httpduser"  #授权用户文件位置
    AuthGroupFile "/data/httpdgroup"  #授权用户组文件位置
    Require group groupA  #允许访问的组
</Directory>
[root@happiness ~]# systemctl restart httpd.service
结果:

美高梅手机版4858 7  美高梅手机版4858 8

1、调控项目

打开:hosts文件

[root@localhost root]# ifconfig eth0:1 192.168.1.11
[root@localhost root]# ifconfig eth0:2 192.168.1.12
[root@localhost root]# ifconfig eth0:3 192.168.1.13

 httpd的虚拟主机VirtualHost

  平常在1台服务器安装Apache后,我们只好访问贰个web站点,假设大家须要在一台服务器访问多少个web站点,则需求经过Apache的VirtualHost虚拟主机落成,其实正是由此VirtualHost落成访问同三个服务器上的例外目录。
  虚拟主机帮助两种建构章程:

  • 基于ip的方法,供给为每种虚拟主机策动至少2个ip地址,配置格式如:

      <VirtualHost IP:PORT>
        ServerName  “www.xxx.cn”  #虚拟主机域名
        DocumentRoot  “/www/xxx”  #虚拟主机web目录
      </VirtualHost>

    示例:

#创建目录
  [root@happiness ~]# mkdir -p /data/Vip/test1
  [root@happiness ~]# mkdir -p /data/Vip/test2
  [root@happiness ~]# chcon -R --reference /var/www/html /data/Vip #复制安全上下文
#创建index.html文件
  [root@happiness ~]# vim /data/Vip/test1/index.html
      <h1>virtual test based on ip. one</h1>
  [root@happiness ~]# vim /data/Vip/test2/index.html
      <h1>virtual test based on ip. two</h1>
#注释/var/www/html作为根路径
  [root@happiness ~]# vim /etc/httpd/conf/httpd.conf
      #DocumentRoot /var/www/html
#添加virtualhost.conf配置文件(文件名自定义)
  [root@happiness ~]# vim /etc/httpd/conf.d/virtualhost.conf
    <VirtualHost 192.168.4.119:80>
         DocumentRoot "/data/Vip/test1"
         <Directory "/data/Vip/test1">
             AllowOverride None
             Options None
             Require all granted
         </Directory>
    </VirtualHost>

    <VirtualHost 192.168.4.120:80>
        DocumentRoot "/data/Vip/test2"
        <Directory "/data/Vip/test2">
           AllowOverride None
           Options None
           Require all granted
         </Directory>
    </VirtualHost>
#启动httpd服务
  [root@happiness ~]# systemctl start httpd.service
#清空防火墙规则
  [root@happiness ~]# iptables -F
访问结果:
  • 依赖port的章程,须要为各种虚拟主机配置叁个单身的port,配置格式如:

      Listen 8080  #内定别的端口时,须求加上监听该端口
      <VirtualHost IP:PORT>
        ServerName  “www.xxx.cn”  #虚拟主机域名
        DocumentRoot  “/www/xxx”  #虚拟主机web目录
      </VirtualHost>

    示例:

#在上面的基础上直接修改virtualhost文件
[root@happiness ~]# vim /etc/httpd/conf.d/virtualhost.conf
Listen 8080
<VirtualHost 192.168.4.119:80>
    DocumentRoot "/data/Vip/test1"
    <Directory "/data/Vip/test1">
        AllowOverride None
        Options None
        Require all granted
    </Directory>
</VirtualHost>

<VirtualHost 192.168.4.119:8080>
    DocumentRoot "/data/Vip/test2"
    <Directory "/data/Vip/test2">
        AllowOverride None
        Options None
        Require all granted
    </Directory>
</VirtualHost>
访问结果:
  • 基于FQDN的秘诀,要求为各样虚拟主机配置一个FQDN,配置格式如:

      NameVirtualHost
172.16.100.6:80  #httpd-二.贰要求在配备文件中增添此句
      <VirtualHost 172.16.100.6:80>
        ServerName www.xxx.com #指定FQDN
        DocumentRoot “/www/xxxcom”
      </VirtualHost>
      <VirtualHost 172.16.100.6:80>
        ServerName www.xxx.cn #指定FQDN
        DocumentRoot “/www/xxxcn”
      </VirtualHost>

    示例:

#在上面的基础上直接修改virtualhost文件
[root@happiness ~]# vim /etc/httpd/conf.d/virtualhost.conf
<VirtualHost 192.168.4.119:80>
    ServerName www.test1.cn
    DocumentRoot "/data/Vip/test1"
    <Directory "/data/Vip/test1">
        AllowOverride None
        Options None
        Require all granted
    </Directory>
</VirtualHost>

<VirtualHost 192.168.4.119:80>
    ServerName www.test2.cn
    DocumentRoot "/data/Vip/test2"
    <Directory "/data/Vip/test2">
        AllowOverride None
        Options None
        Require all granted
    </Directory>
</VirtualHost>
访问结果:
    
  • 证实质询:WWW-Authenticate:响应码为40一,拒绝客户端请求,并证实供给客户端提供账号和密码

加多域名指向。

 二. 改造hosts文件,加多多个域名与之壹一对应:

  • 表达:Authorization:客户端用户填入账号和密码后再也发送请求报文;认证通过时,则服务器发送响应的能源

2、修改httpd.conf.

192.168.1.11   www.test1.com
192.168.1.12   www.test2.com
192.168.1.13   www.test3.com

  • 评释情势三种
    配置虚拟主机三种艺术,3认证及虚拟主机。    basic:明文
        digest:音讯摘要认证,包容性差

布局生效前提,必须修改跟目录为:

 3.
创设虚拟主机存放网页的根目录,如在/www目录下组建test1、test二、test三文件夹,当中独家寄存一.html、二.html、3.html

  • 安全域:必要用户认证后方能访问的路径;应该经过名称对其开展标记,以便于告知用户认证的由来

<Directory />
Options FollowSymLinks
AllowOverride None
### Order deny,allow
### Deny from all
Order allow,deny
Allow from all
Satisfy all
</Directory>

/www/test1/1.html
/www/test2/2.html
/www/test3/3.html

  • 用户的账号和密码
        虚拟账号:仅用于访问某服务时用到的表明标记
        存款和储蓄方法:文本文件,SQL数据库,ldap目录存款和储蓄,nis等

再不会并发无权访问难题。

 

二、basic认证配置

叁、虚拟主机的配置
(壹)基于IP地址的虚拟主机配置
Listen 80
<VirtualHost
172.20.30.40>
DocumentRoot /www/example1
ServerName www.example1.com
</VirtualHost>
<VirtualHost
172.20.30.50>
DocumentRoot /www/example2
ServerName www.example2.org
</VirtualHost>

 四.
在httpd.conf大校附加配置文件httpd-vhosts.conf包括进来,接着在httpd-vhosts.conf中写入如下配置:

  • (壹)
    定义安全域

        <Directory “/path”>
            Options None
            AllowOverride None
            AuthType Basic(验证格局)
            AuthName “String”(描述新闻)
            AuthUserFile
    “/PATH/HTTPD_USER_PASSWD_FILE”(账户文件存放地方)
            Require user username一 username贰 …(允许用户为如何)
        </Directory>
        允许账号文件中的全部用户登6访问:
            Require valid-user

(2) 基于IP和多端口的虚拟主机配置
Listen 172.20.30.40:80
Listen 172.20.30.40:8080
Listen 172.20.30.50:80
Listen 172.20.30.50:8080

 

 

<VirtualHost
172.20.30.40:80>
DocumentRoot /www/example1-80
ServerName www.example1.com
</VirtualHost>

美高梅手机版4858 9

  • (2)
    提供账号和密码存款和储蓄(文本文件)

<VirtualHost
172.20.30.40:8080>
DocumentRoot /www/example1-8080
ServerName www.example1.com
</VirtualHost>

<VirtualHost 192.168.1.11:80>
  ServerName www.test1.com
  DocumentRoot /www/test1/
  <Directory “/www/test1”>
     Options Indexes FollowSymLinks
     AllowOverride None
     Order allow,deny
     Allow From All
   </Directory>
</VirtualHost>

    使用专用命令完成此类文件的创建及用户管理

     htpasswd \[options\]
/PATH/HTTPD\_PASSWD\_FILE username  



    -c:自动创建文件,仅应该在文件不存在时使用  



    -m:md5格式加密,默认方式

    -s: sha格式加密  


    -D:删除指定用户

<VirtualHost
172.20.30.50:80>
DocumentRoot /www/example2-80
ServerName www.example1.org
</VirtualHost>

<VirtualHost 192.168.1.12:80>
  ServerName www.test1.com
  DocumentRoot /www/test2/
  <Directory “/www/test2”>
     Options Indexes FollowSymLinks
     AllowOverride None
     Order allow,deny
     Allow From All
   </Directory>
</VirtualHost>

<VirtualHost
172.20.30.50:8080>
DocumentRoot /www/example2-8080
ServerName www.example2.org
</VirtualHost>

<VirtualHost 192.168.1.13:80>
  ServerName www.test1.com
  DocumentRoot /www/test3/
  <Directory “/www/test3”>
     Options Indexes FollowSymLinks
     AllowOverride None
     Order allow,deny
     Allow From All
   </Directory>
</VirtualHost>

#实验:创建加密的用户及密码
[root@Centos6-serverconf.d]#pwd
/etc/httpd/conf.d

[root@Centos6-serverconf.d]#ls -a
.  ..  .httpusers  

[root@Centos6-serverconf.d]#htpasswd -c .httpusers http1
New password: 
Re-type new password: 
Adding password for user http1

[root@Centos6-serverconf.d]#htpasswd -s .httpusers http2
Adding password for user http2

[root@Centos6-serverconf.d]#htpasswd -m .httpusers http3
Adding password for user http3

[root@Centos6-serverconf.d]#cat .httpusers 
http1:b4QECtkC6VarQ
http2:{SHA}s6VCX366xaGxnQ00QYzgpPZKelE=
http3:$apr1$H31NOGIE$tafiBf6tKSZmId1VqUz1H0

[root@Centos6-serverconf.d]#mkdir /app/website/secret
[root@Centos6-serverconf.d]#echo /app/website/secret/index.html > /app/website/secret/index.html

[root@Centos6-serverconf.d]#vim auth.conf
<Directory /app/website/secret>
        Authtype Basic
        AuthName "Admin dir"
        AuthUserFile "/etc/httpd/conf.d/.htusers"
        Require user http1 http2                                                                       
</Directory>
[root@Centos6-serverconf.d]#service httpd restart 

[root@centos7mini~]#curl -I HTTP/1.1 401 Authorization Required                       --->401提示
Date: Wed, 24 Jan 2018 07:19:41 GMT
Server: Apache
WWW-Authenticate: Basic realm="Admin dir"
Connection: close
Content-Type: text/html; charset=iso-8859-1

(3)单个IP地址的服务器上根据域名的虚拟主机配置:
# Ensure that Apache listens on port 80
Listen 80

美高梅手机版4858 10

 

# Listen for virtual host requests on all IP
addresses
NameVirtualHost *:80

 5.
马到功成,测试下各种虚拟主机,分别访问www.test一.com、www.test二.com、www.test三.com

 

<VirtualHost
*:80>
DocumentRoot /www/example1
ServerName www.example1.com
ServerAlias example1.com. *.example1.com
# Other directives here
</VirtualHost>

 

美高梅手机版4858 11美高梅手机版4858 12

<VirtualHost
*:80>
DocumentRoot /www/example2
ServerName www.example2.org
# Other directives here
</VirtualHost>

②、基于主机名

  • 基于组账号进行认证

(肆)在三个IP地址的服务器上配备基于域名的虚拟主机:
Listen 80

 1. 设置域名映射同叁个IP,修改hosts:

     (1) 定义安全域  
    &lt;Directory “/path"&gt;  
        AuthType Basic  
        AuthName "String“  
        AuthUserFile "/PATH/HTTPD\_USER\_PASSWD\_FILE"  
        AuthGroupFile "/PATH/HTTPD\_GROUP\_FILE"  
        Require group grpname1 grpname2 ...  
    &lt;/Directory&gt;  


     (2)
创建用户账号和组账号文件;  



    组文件:每一行定义一个组  
    GRP\_NAME: username1 username2 ...

# This is the “main” server running on 172.20.30.40
ServerName server.domain.com
DocumentRoot /www/mainserver

192.168.1.10  www.test1.com
192.168.1.10  www.test2.com
192.168.1.10  www.test3.com

  • 示例:
        <Directory “/www/htdocs/admin”>
            Options None
            AllowOverride None
            AuthType Basic
            AuthName “Administator private”
            AuthUserFile “/etc/httpd/conf.d/.httpusers”
            AuthGroupFile “/etc/httpd/conf.d/.httpgroups”

            Require group admins

        </Directory>
        vim /etc/httpd/conf.d/.httpgroups

        admins: http1 http3
        users: http2 

# This is the other address
NameVirtualHost
172.20.30.50

 二. 跟上面同样,创立虚拟主机存放网页的根目录

<VirtualHost
172.20.30.50>
DocumentRoot /www/example1
ServerName www.example1.com
# Other directives here …
</VirtualHost>
IXDBA.NET社区论坛

/www/test1/1.html
/www/test2/2.html
/www/test3/3.html

[root@Centos6-serverconf.d]#vim auth.conf 
<Directory /app/website/secret>
        Authtype Basic
        AuthName "Administator private"
        AuthUserFile "/etc/httpd/conf.d/.httpusers"
        AuthGroupFile "/etc/httpd/conf.d/.httpgroups"
        Require group admins                                                                           
</Directory>

[root@Centos6-serverconf.d]#vim .httpgroups
admins: http1 http3
users: http2

<VirtualHost
172.20.30.50>
DocumentRoot /www/example2
ServerName www.example2.org
# Other directives here …
</VirtualHost>

 

 

(五)在差别的端口上运转不一样的站点(基于多端口的服务器上安排基于域名的虚拟主机):
Listen 80
Listen 8080

 三.
在httpd.conf大校附加配置文件httpd-vhosts.conf包括进来,接着在httpd-vhosts.conf中写入如下配置:

三、远程客户端和用户验证的调整

NameVirtualHost
172.20.30.40:80
NameVirtualHost
172.20.30.40:8080

 

  • Satisfy ALL|Any
        ALL 客户机IP和用户验证都需求经过才得以
        Any 客户机IP和用户验证,有两个满意就能够

<VirtualHost
172.20.30.40:80>
ServerName www.example1.com
DocumentRoot /www/domain-80
</VirtualHost>

  为了选取基于域名的虚拟主机,必须钦定服务器IP地址(和恐怕的端口)来使主机接受请求。能够用NameVirtualHost指令来举办配备。
倘使服务器上装有的IP地址都会用到,
你能够用*用作NameVirtualHost的参数。在NameVirtualHost指令中指明IP地址并不会使服务器自动侦听那二个IP地址。 这里设定的IP地址必须对应服务器上的3个网络接口。

  • 示例:
        Require valid-user
        Order allow,deny
        Allow from 192.168.1
        Satisfy Any

<VirtualHost
172.20.30.40:8080>
ServerName www.example1.com
DocumentRoot /www/domain-8080
</VirtualHost>

  下一步正是为您建设构造的各类虚拟主机设定<VirtualHost>配置块,<VirtualHost>的参数与NameVirtualHost指令的参数是同一的。每个<VirtualHost>定义块中,至少都会有一个ServerName指令来内定伺服哪个主机和3个DocumentRoot指令来表明这一个主机的始末存在于文件系统的什么样地方。

肆、达成用户家目录的http共享

<VirtualHost
172.20.30.40:80>
ServerName www.example2.org
DocumentRoot /www/otherdomain-80
</VirtualHost>

  就算在现有的web服务器上平添虚拟主机,必须也为现存的主机建造四个<VirtualHost>定义块。个中ServerName和DocumentRoot所富含的剧情应该与大局的保持一致,且要放在配置文件的最前头,扮演默许主机的剧中人物。

  • 依附模块mod_userdir.so实现

<VirtualHost
172.20.30.40:8080>
ServerName www.example2.org
DocumentRoot /www/otherdomain-8080
</VirtualHost>

美高梅手机版4858 13

  • SELinux:
    http_enable_homedirs

(陆)基于域名和根据IP的混合虚拟主机的安排:
Listen 80

NameVirtualHost *:80
<VirtualHost *:80>  

  • 连带安装:
        vim /etc/httpd/conf/httpd.conf
        <IfModule mod_userdir.c>
            #UserDir disabled
            UserDir public_html #点名共享目录的称呼
        </IfModule>
        

        希图目录
            su – wang;mkdir ~/public_html
            setfacl –m u:apache:x ~student
        访问
            

  • 小心:要修改共享文件夹的拜访权限

NameVirtualHost
172.20.30.40

  ServerName *

<VirtualHost
172.20.30.40>
DocumentRoot /www/example1
ServerName www.example1.com
</VirtualHost>

  DocumentRoot /www/ 

[root@Centos6-serverconf.d]#httpd -M | grep userdir
 userdir_module (shared)
[root@Centos6-serverconf.d]#getenforce                    --->默认就把SELinux关闭了
Disabled

[root@Centos6-serverconf.d]#vim /etc/httpd/conf/httpd.conf 
<IfModule mod_userdir.c>

#    UserDir disabled                                     --->注释掉或者改成enabled

    UserDir publicweb                                     --->共享文件夹的名字

[root@Centos6-serverconf.d]#ll -d /home/L/
drwx------ 3 L L 4096 Jan 24 15:59 /home/L/
[root@Centos6-serverconf.d]#tail /var/log/httpd/error_log 
[Wed Jan 24 16:21:32 2018] [error] [client 192.168.1.5] (13)Permission denied: access to /~L/ denied

[root@Centos6-serverconf.d]#setfacl -m u:apache:x /home/L/
[root@centos7mini~]#curl 
/home/L/publicweb/index.html

[root@Centos6-serverconf.d]#mkdir /root/publicweb
[root@Centos6-serverconf.d]#echo /root/publicweb/index.html > /root/publicweb/index.html
[root@Centos6-serverconf.d]#setfacl -m u:apache:x /root/

<VirtualHost
172.20.30.40>
DocumentRoot /www/example2
ServerName www.example2.org
</VirtualHost>

</VirtualHost>

美高梅手机版4858 14

<VirtualHost
172.20.30.40>
DocumentRoot /www/example3
ServerName www.example3.net
</VirtualHost>

<VirtualHost *:80>

 

==========================================================================

  ServerName www.test1.com

 

一言以蔽之的说,张开httpd.conf 在终极进入如下内容:

  DocumentRoot /www/test1/

五、错误页面消息设置

<VirtualHost
127.0.0.2:80>
    DocumentRoot d:/AppServ/www2
    ServerName 127.0.0.2:80
</VirtualHost>

  <Directory “/www/test1”>

  • ServerSignature     On | Off
    | EMail

  • 当客户请求的网页并不设有时,服务器将发生错误文书档案,缺省事态下是因为张开了
    ServerSignature 选项

<Directory “d:/AppServ/www2”>
    Options Indexes FollowSymLinks Multiviews
    AllowOverride All
    Order Allow,Deny
    Allow from all
</Directory>

    Options Indexes FollowSymLinks

    错误文档的最后一行将包含服务器的名字、Apache的版本等信息  
如果不对外显示这些信息,就可以将这个参数设置为Off  
设置为Email,将显示 ServerAdmin 的Email提示。

“d:/AppServ/www二”
为你的站点存放目录:重启apache二以往,你的虚拟主机就布置好了,今后就可以通过1二7.0.0.2,和12七.0.0.三进入不相同的站点了。

    AllowOverride None

  • 建议设置为 Off

上面为详细表明分析:

    Order allow,deny

在我们设置APACHE的时候一般暗中同意的apache的布局是只有1个网址,那样切换起来很不方便人民群众。其实那几个难点很好解决,正是把本机的apache配置成为虚拟服务器。可是,互连网超过伍三%科目的是教用
apache怎么样配置基于域名的虚拟主机的,而在本机调节和测试网址的时候,一般都以用本地ip(127.0.0.1或 localhost)直接待上访问,没有用到域名。所以得把apache配置成为基于ip地址的虚拟主机。

    Allow from all

[root@Centos6-serverconf.d]#vim /etc/httpd/conf/httpd.conf 
ServerSignature Off

率先,大家都精通,全体以12七超越的ip地址都应该本着本机,并不只有127.0.0.一,那点大家能够实践。
这样一来,也正是说本机有丰富多的ip地址供你来设置虚拟主机了。

  </Directory>

美高梅手机版4858 15

废话少说,进入标准的铺排工作,下面是apache的httpd.conf里相关配置部分(
httpd.conf 位于 Apache二.二\conf ):
1、Listen部分,必须一向钦赐端口,不钦点ip地址,配置应写为:
Listen 80
二、不用像基于域名的虚拟主机那样写“NameVirtualHost”。

</VirtualHost> 

6、ServerType inetd |
standalone.

三、虚拟主机配置段:在httpd.conf 最终加上
<VirtualHost
127.0.0.2:80>
    DocumentRoot d:/AppServ/www2
    ServerName 127.0.0.2:80
</VirtualHost>

 

  • standalone 独立服务形式

<VirtualHost
127.0.0.3:80>
    DocumentRoot d:/AppServ/www3
    ServerName 127.0.0.3:80
</VirtualHost>…

<VirtualHost *:80>

  • inetd 非独立服务方式

四、然后相应的布置好种种目录属性,上边是3个索引属性的杰出配置:
<Directory “d:/AppServ/www2”>
    Options Indexes FollowSymLinks Multiviews
    AllowOverride All
    Order Allow,Deny
    Allow from all
</Directory>

  ServerName www.test2.com

  • 只适用于Unix平台

<Directory “d:/AppServ/www3”>
    Options Indexes FollowSymLinks Multiviews
    AllowOverride All
    Order Allow,Deny
    Allow from all
</Directory>

  DocumentRoot /www/test2/

重启apache二今后,你的虚拟主机就安顿好了,以往就足以经过127.0.0.壹和12七.0.0.二,1贰七.0.0.3进去分歧的站点了。

  <Directory “/www/test2”>

7、status页面

    Options Indexes FollowSymLinks

  • LoadModule status_module
    modules/mod_status.so
        <Location /server-status>
            SetHandler server-status
            Order allow,deny
            Allow from 172.16
        </Location>

    AllowOverride None

  •  ExtendedStatus On
    彰显增添音信

    Order allow,deny

    Allow from all

[root@Centos6-serverconf.d]#vim /etc/httpd/conf/httpd.conf
<Location /status>
    SetHandler server-status
    Order deny,allow
#    Deny from all
    Allow from .example.com                                                                            
</Location>

#正常打开网页所显示的内容
Apache Server Status for 192.168.1.100
Server Version: Apache/2.2.15 (Unix) DAV/2                             #软件版本信息
Server Built: Mar 22 2017 06:52:55                                     #软件编译时间
Current Time: Wednesday, 24-Jan-2018 16:42:14 CST                      #当前时间
Restart Time: Wednesday, 24-Jan-2018 16:41:49 CST                      #上次重启服务时间
Parent Server Generation: 0                                            #父代服务器生成:0
Server uptime:  24 seconds                                             
1 requests currently being processed, 7 idle workers                   #1个工作中,7个空闲状态
W_______........................................................

................................................................

................................................................

................................................................

Scoreboard Key:
 "_" Waiting for Connection,  "S" Starting up,  "R" Reading Request,
 "W" Sending Reply,  "K" Keepalive (read),  "D" DNS Lookup,
 "C" Closing connection,  "L" Logging,  "G" Gracefully finishing,
 "I" Idle cleanup of worker,  "." Open slot with no current process
PID Key:                                                               #子进程pid编号
   48392 in state: W ,   48393 in state: _ ,   48394 in state: _ 
   48395 in state: _ ,   48396 in state: _ ,   48397 in state: _ 
   48398 in state: _ ,   48399 in state: _ ,
To obtain a full report with current status information you need to use the ExtendedStatus On directive.

#
“_”等待连接            “S”启动            “R”读取请求时
“W”发送回复            “K”保持连接(读)    “D” DNS查找
“C”关闭连接            “L”日志            “G”优雅地完成
“I”空闲清理工作人员     “,.”打开没有当前进程的插槽

  </Directory>

二、虚拟主机

</VirtualHost>

一、达成方式及注意事项

<VirtualHost *:80>

  • 基于ip:为各种虚拟主机计划至少2个ip地址

  ServerName www.test3.com

  • 基于port:为每一个虚拟主机使用至少二个独自的port

  DocumentRoot /www/test3/

  • 基于FQDN:为每种虚拟主机使用至少四个FQDN

  • 注意:一般虚拟机不要与main主机混用;因而,要利用虚拟主机,一般先禁止使用main主机

  <Directory “/www/test3”>

  • 剥夺方法:注释中央主机的DocumentRoot指令就能够

  • 站点标志: socket
        IP一样,但端口差别
        IP不一致,但端口均为默许端口
        FQDN不同:
            请求报文中首部
            Host: www.magedu.com

  • 虚拟主机的布署格局
        <VirtualHost IP:PORT>
            ServerName FQDN
            DocumentRoot “/path”
        </VirtualHost>

    Options Indexes FollowSymLinks

  • 建议:上述配置存放在单身的布署文件中

    AllowOverride None

二、基于IP的虚拟主机示例

    Order allow,deny

  •     <VirtualHost
    172.16.100.6:80>
            ServerName www.a.com
            DocumentRoot “/www/a.com/htdocs”
        </VirtualHost>

    Allow from all

    &lt;VirtualHost 172.16.100.7:80&gt;  
        ServerName [www.b.net](http://www.b.net)  
        DocumentRoot "/www/b.net/htdocs"  
    &lt;/VirtualHost&gt;


    &lt;VirtualHost 172.16.100.8:80&gt;  
        ServerName [www.c.org](http://www.c.org)  
        DocumentRoot "/www/c.org/htdocs"  
    &lt;/VirtualHost&gt;

  </Directory>

</VirtualHost>

#实验:基于IP地址的虚拟主机
[root@Centos6-serverapp]#ls
website
[root@Centos6-serverapp]#cp website/ website2 -r
[root@Centos6-serverapp]#cp website/ website3 -r

[root@Centos6-serverapp]#vim website2/index.html 
/app/website2 
[root@Centos6-serverapp]#vim website3/index.html 
/app/website3 

[root@Centos6-serverconf.d]#pwd
/etc/httpd/conf.d

[root@Centos6-serverconf.d]#vim vhost.conf 
        documentroot /app/website
<Virtualhost 192.168.1.251:80
<Virtualhost 192.168.1.100:80>
        DocumentRoot /app/website
        ErrorLog logs/website1-error_log
        CustomLog logs/website1-access_log common
</Virtualhost>
<Virtualhost 192.168.1.250:80>
        DocumentRoot /app/website2
        ErrorLog logs/website2-error_log
        CustomLog logs/website2-access_log common
</Virtualhost>
<Virtualhost 192.168.1.251:80>
        DocumentRoot /app/website3
        ErrorLog logs/website3-error_log
        CustomLog logs/website3-access_log common                                                      
</Virtualhost>

[root@centos7mini~]#curl 192.168.1.100
/app/website

[root@centos7mini~]#curl 192.168.1.250
/app/website2
[root@centos7mini~]#curl 192.168.1.251
/app/website3

[root@Centos6-serverconf.d]#ll /var/log/httpd/
-rw-r--r-- 1 root root      71 Jan 28 19:46 website1-access_log
-rw-r--r-- 1 root root       0 Jan 28 19:45 website1-error_log
-rw-r--r-- 1 root root      71 Jan 28 19:46 website2-access_log
-rw-r--r-- 1 root root       0 Jan 28 19:45 website2-error_log
-rw-r--r-- 1 root root      71 Jan 28 19:46 website3-access_log
-rw-r--r-- 1 root root       0 Jan 28 19:45 website3-error_log

美高梅手机版4858 16

三、基于端口的虚拟主机

 4.
水到渠成,测试下每一个虚拟主机,分别走访www.test1.com、www.test2.com、www.test三.com

  • 可和凭借IP的虚拟主机混和使用

  •     listen 808
        listen 8080
        <VirtualHost 172.16.100.6:80>
    美高梅手机版4858 ,        ServerName www.a.com
            DocumentRoot
    “/www/a.com/htdocs”
        </VirtualHost>

 

    &lt;VirtualHost 172.16.100.6:808&gt;  
        ServerName [www.b.net](http://www.b.net/)  
        DocumentRoot
"/www/b.net/htdocs"  
    &lt;/VirtualHost&gt;


    &lt;VirtualHost 172.16.100.6:8080&gt;  
        ServerName [www.c.org](http://www.c.org/)  
        DocumentRoot
"/www/c.org/htdocs"  
    &lt;/VirtualHost&gt;

三、基于端口

1.  修改配置文件

#实验:基于端口的虚拟主机
[root@Centos6-serverconf.d]#vim vhost.conf 
listen 8001
listen 8002
listen 8003                                                                                            
<Virtualhost *:8001>
        DocumentRoot /app/website
        ErrorLog logs/website1-error_log
        CustomLog logs/website1-access_log common
</Virtualhost>
<Virtualhost *:8002>
        DocumentRoot /app/website2
        ErrorLog logs/website2-error_log
        CustomLog logs/website2-access_log common
</Virtualhost>
<Virtualhost *:8003>
        DocumentRoot /app/website3
        ErrorLog logs/website3-error_log
        CustomLog logs/website3-access_log common
</Virtualhost>
[root@Centos6-serverconf.d]#ss -ntl
State       Recv-Q Send-Q                   Local Address:Port                     Peer Address:Port 
LISTEN      0      128                                 :::8001                               :::*     
LISTEN      0      128                                 :::8002                               :::*     
LISTEN      0      128                                 :::8003                               :::*     
LISTEN      0      128                                 :::80                                 :::*  

[root@centos7mini~]#curl 192.168.1.100:8001
/app/website

[root@centos7mini~]#curl 192.168.1.100:8002
/app/website2

[root@centos7mini~]#curl 192.168.1.100:8003
/app/website3

  将原来的

四、基于FQDN的虚拟主机

    Listen 80
      改为
      Listen 80
      Listen 8080

  • NameVirtualHost *:80
    httpd二.四不须要此命令
        <VirtualHost *:80>
            ServerName www.a.com
            DocumentRoot “/www/a.com/htdocs”
        </VirtualHost>
  1. 更动虚拟主机设置:
    &lt;VirtualHost \*:80&gt;  
        ServerName [www.b.net](http://www.b.net)  
        DocumentRoot "/www/b.net/htdocs"  
    &lt;/VirtualHost&gt;


    &lt;VirtualHost \*:80&gt;  
        ServerName [www.c.org](http://www.c.org)  
        DocumentRoot "/www/c.org/htdocs"  
    &lt;/VirtualHost&gt;  

美高梅手机版4858 17

<VirtualHost 192.168.1.10:80>
    DocumentRoot /var/www/test1/
    ServerName www.test1.com
</VirtualHost>

#实验:基于FQDN的虚拟主机

[root@Centos6-serverconf.d]#vim vhost.conf   
NameVirtualHost *:80
<Virtualhost *:80>
        DocumentRoot /app/website
        ServerName www.a.com
        ErrorLog logs/website1-error_log
        CustomLog logs/website1-access_log common
</Virtualhost>
<Virtualhost *:80>
        DocumentRoot /app/website2
        ServerName www.b.com
        ErrorLog logs/website2-error_log
        CustomLog logs/website2-access_log common
</Virtualhost>
<Virtualhost *:80>                                                                                     
        DocumentRoot /app/website3
        ServerName www.c.com
        ErrorLog logs/website3-error_log
        CustomLog logs/website3-access_log common
</Virtualhost>
#注意:如果通过IP来访问,而不是通过FQDN访问,第一个为IP默认要访问的地址!!!
[root@centos7mini~]#vim /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.1.100     

[root@centos7mini~]#curl www.a.com
/app/website

[root@centos7mini~]#curl www.b.com
/app/website2

[root@centos7mini~]#curl www.c.com
/app/website3

[root@centos7mini~]#telnet www.b.com 80                ---> 这的FQDN无所谓
Trying 192.168.1.100...
Connected to www.b.com.
Escape character is '^]'.
GET / http/1.1
HOST:                                         ---> 这的主机头才是要访问的地址
HTTP/1.1 200 OK
Date: Sun, 28 Jan 2018 12:06:33 GMT
Server: Apache
Last-Modified: Sun, 28 Jan 2018 11:34:22 GMT
ETag: "12000d-e-563d482c9ad21"
Accept-Ranges: bytes
Content-Length: 14
Connection: close
Content-Type: text/html; charset=UTF-8
/app/website3
Connection closed by foreign host.

#注意:一般虚拟机不要与main主机混用;因此,要使用虚拟主机,一般先禁用main主机
#注意:如果通过IP来访问,而不是通过FQDN访问,第一个为IP默认要访问的地址!!!
[root@centos7mini~]#curl 192.168.1.100
/app/website

[root@centos7mini~]#vim /etc/hosts
192.168.1.100     

[root@centos7mini~]#curl /app/website
[root@centos7mini~]#curl /app/website
[root@centos7mini~]#curl /app/website

<VirtualHost 192.168.1.10:8080>
    DocumentRoot /var/www/test2
    ServerName www.test2.com
</VirtualHost>


美高梅手机版4858 18

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图
Copyright @ 2010-2019 美高梅手机版4858 版权所有