zoukankan      html  css  js  c++  java
  • apache相关实验-1

    一、目录别名实验

    当 apache 接受请求时,在默认情况下会将 DocumentRoot 目录中的文件送到客户端,如果想将某一不在 DocumentRoot 目录中的文件共享到网站上,并希望将它们留在本来位置而不需要进行移动的话, 处理这种情况可以通过建立别名的方式将 URL 指向特定的目录。

    1、修改主配置文件

    大概在468行左右,取消注释

    [root@centos ~]# vim /usr/local/apache2/etc/httpd.conf
        Include etc/extra/httpd-autoindex.conf
    
    2、修改子配置文件
    [root@centos ~]# vim /usr/local/apache2/etc/extra/httpd-autoindex.conf
        Alias /test/ "/tmp/test/"
        <Directory "/tmp/test/">
            Options Indexes MultiViews
            AllowOverride None
            Require all granted
        </Directory>
    
    3、创建目录,并创建文件
    [root@centos ~]# mkdir /tmp/test/
    [root@centos test]# echo 123456 > 1.txt
    
    4、浏览器进行访问

    二、Apache 的用户认证

    有时候,我们需要给一些特殊的访问设置一个用户认证机制,增加安全。比如我们的个人网站,一般都是有一个管理后台的,虽然管理后台本身就有密码,但我们为了更加安全,可以再设置一层用户身份认证。

    1、修改主配置文件
    [root@centos apache2]# vim /usr/local/apache2/etc/httpd.conf
        <Directory "/usr/local/apache2/htdocs/admin"> #声明被保护目录 
            Options Indexes FollowSymLinks          
            AllowOverride All             #开启权限认证文件.htaccess          
            Require all granted           #允许访问
        </Directory>
    
    2、在指定目录下创建权限文件
    [root@centos apache2]# mkdir /usr/local/apache2/htdocs/admin
    [root@centos admin]# vim .htaccess
        AuthName "Welcome to admin manager" #提示信息
        AuthType basic #加密类型 
        AuthUserFile /usr/local/apache2/htdocs/admin/admin.passwd #密码文件,文件名自定义。     
        require valid-user #允许密码文件中所有用户访问
    
    3、在指定目录下创建密码文件,加入允许访问的用户。(此用户和系统用户无关)
    [root@centos admin]# /usr/local/apache2/bin/htpasswd  -c  /usr/local/apache2/htdocs/admin/admin.passwd  test1  #第一个用户使用 -c参数
    New password: 
    Re-type new password: 
    Adding password for user test1
    [root@centos admin]# /usr/local/apache2/bin/htpasswd  -m  /usr/local/apache2/htdocs/admin/admin.passwd  test2 #再添加用户则使用 -m参数
    New password: 
    Re-type new password: 
    Adding password for user test2
    
    4、重启apache
    [root@centos admin]# /usr/local/apache2/bin/apachectl -t
    [root@centos admin]# /usr/local/apache2/bin/apachectl restart
    
    5、访问

    三、虚拟主机实验

    虚拟主机,也叫“网站空间”,就是把一台运行在互联网上的物理服务器划分成多个“虚拟”服务器。 虚拟主机技术极大的促进了网络技术的应用和普及。同时虚拟主机的租用服务也成了网络时代的一种新型经济形式。
    虚拟主机的分类:
    基于 IP 的虚拟主机:一台服务器,多个 ip,搭建多个网站
    基于端口的虚拟主机:一台服务器,一个 ip,搭建多个网站,每个网络使用不同端口访问
    基于域名的虚拟主机:一台服务器,一个 ip,搭建多个网站,每个网站使用不同域名访问(最常用)

    1、准备两个域名
    www.qq.com
    www.bb.com
    
    2、修改主配置文件
    [root@centos admin]# vim /usr/local/apache2/etc/httpd.conf
        Include etc/extra/httpd-vhosts.conf(大约在485行,取消注释)
    
    3、修改子配置文件
    [root@centos admin]# vim /usr/local/apache2/etc/extra/httpd-vhosts.conf
    <Directory "/usr/local/apache2/htdocs/qq">  #目录权限      
        Options Indexes FollowSymLinks          
        AllowOverride None          
        Require all granted   
    </Directory>
    <VirtualHost 20.20.20.21:80>     #虚拟主机配置   
            ServerAdmin 2829507692@qq.com
            DocumentRoot "/usr/local/apache2/htdocs/qq"
            ServerName www.qq.com
            ErrorLog "logs/qq-error_log"
            CustomLog "logs/qq-access_log" common
    </VirtualHost>
    <Directory "/usr/local/apache2/htdocs/bb">
            Options Indexes FollowSymLinks
            AllowOverride None
            Require all granted
    </Directory>
    <VirtualHost 20.20.20.21:80>
            ServerAdmin 2829507692@qq.com
            DocumentRoot "/usr/local/apache2/htdocs/bb"
            ServerName www.bb.com
            ErrorLog "logs/bb-error_log"
            CustomLog "logs/bb-access_log" common
    </VirtualHost>
    
    4、创建目录,并写入内容。
    [root@centos admin]# mkdir /usr/local/apache2/htdocs/{qq,bb}
    [root@centos admin]# echo thie is qq >/usr/local/apache2/htdocs/qq/index.html
    [root@centos admin]# echo thie is bb >/usr/local/apache2/htdocs/bb/index.html
    
    5、修改windows hosts文件,进行访问测试
    20.20.20.21 www.qq.com
    20.20.20.21 www.bb.com
    
    6、访问


    四、域名跳转实验

    一个站点难免会有多个域名,而多个域名总得有一个主次,比如我的网站可以用两个域名访问: www.qq.com 和 www.bb.com 但大家发现不管我用哪个域名访问,最终都会跳转到 www.qq.com 上 来。这个行为就叫做域名跳转。

    1、编辑主配置文件
    [root@centos admin]# vim /usr/local/apache2/etc/httpd.conf
    LoadModule rewrite_module modules/mod_rewrite.so(大学约在153行,取消注释)
    
    2、修改虚拟主机配置文件
    root@centos admin]# vim /usr/local/apache2/etc/extra/httpd-vhosts.conf
    <Directory "/usr/local/apache2/htdocs/bb">
            Options Indexes FollowSymLinks
            AllowOverride All #修改此处,在认证文件中,进行跳转。
            Require all granted
    </Directory>
    <VirtualHost 20.20.20.21:80>
            ServerAdmin 2829507692@qq.com
            DocumentRoot "/usr/local/apache2/htdocs/bb"
            ServerName www.bb.com
            ErrorLog "logs/bb-error_log"
            CustomLog "logs/bb-access_log" common
    </VirtualHost>
    
    3、创建规则匹配文件
    [root@centos admin]# vim /usr/local/apache2/htdocs/bb/.htaccess  
        RewriteEngine on                       # 开启rewrite功能   
        RewriteCond %{HTTP_HOST} ^www.bb.com   # 把以www.bb.com 开头的内容赋值给HTTP_HOST变量   
        RewriteRule  ^(.*)$ http://www.qq.com/$1 [R=permanent,L]
          # ^(.*)$ 指代客户端要访问的资源    
          # $1 把 .* 所指代的内容赋值到$1变量中   
          # R=permanent 永久重定向 = 301   
          # L 指定该规则为最后一条生效的规则,以后的不再生效 
    
    4、重启,访问
    [root@centos ~]# /usr/local/apache2/bin/apachectl restart
    

  • 相关阅读:
    erlang 大神
    Mysql5.7全新的root密码规则
    单机多实例
    mysql 5.7源码安装
    MySQL审计功能
    MySQL升5.6引发的问题
    一千行MySQL学习笔记
    MySQL5.6新特性之GTID、多线程复制
    正确修改MySQL最大连接数的三种好用方案
    MYSQL 慢日志
  • 原文地址:https://www.cnblogs.com/hjnzs/p/12155706.html
Copyright © 2011-2022 走看看