zoukankan      html  css  js  c++  java
  • apache 各种配置

    //apache 的网站配置文件 /usr/local/apache2/conf/extra/httpd-vhosts.conf
    
    -->在编辑这个文件前需要去httpd.conf把这个文件的注释去掉
    
    <VirtualHost *:80>
        DocumentRoot "/data/www"
        ServerName www.123.com
    
        #不记录指定文件的日志 --还要加上env
        SetEnvIf Request_URI ".*.gif$" image-request
        SetEnvIf Request_URI ".*.jpg$" image-request
        SetEnvIf Request_URI ".*.png$" image-request
        SetEnvIf Request_URI ".*.bmp$" image-request
        SetEnvIf Request_URI ".*.swf$" image-request
        SetEnvIf Request_URI ".*.js$" image-request
        SetEnvIf Request_URI ".*.css$" image-request
    
    #日志设置
    ErrorLog "|/usr/local/apache2/bin/rotatelogs -l /usr/local/apache2/logs/aaa-error_%Y%m%d.log 86400"
    CustomLog "|/usr/local/apache2/bin/rotatelogs -l /usr/local/apache2/logs/aaa-access_%Y%m%d.log 86400"combined env=!image-request
    
    #301跳转
    <IfModule mod_rewrite.c>
         RewriteEngine on
         #进入下列网站     
         RewriteCond %{HTTP_HOST} ^www.tiaozhuan.com [OR]
         RewriteCond %{HTTP_HOST} ^www.test.com$
         #都跳转到www.123.com
         RewriteRule ^/(.*)$ http://www.123.com/$1 [R=301,L]
    
    #禁止user_agent NC为不区分大小写 OR代表二者取一 全部都取就不要OR Rule为规则-F所有访问拒绝
         RewriteCond %(HTTP_USER_AGENT} ^Mozilla/5.* [NC]
         RewriteCond %(HTTP_USER_AGENT} ^.*chrome* [NC]
         RewriteRule .* - [F]
    
    #限制某一个目录不让用户访问,也可利用deny和allow进行限制     
         RewriteCond %{REQUEST_URI} ^.*/tmp/.* [NC]
         RewriteRule .* - [F]
    </IfModule>
    
    #静态缓存
    #1.mod_expires.c
     <IfModule mod_expires.c>
        ExpiresActive on
        ExpiresByType image/gif "access plus 1 days"
        ExpiresByType image/jpeg "access plus 24 hours"
        ExpiresByType image/png "access plus 24 hours"
        ExpiresByType text/css "now plus 2 hours"
        ExpiresByType application/x-javacript "now plus 2 hours"
        ExpiresByType application/javascript "now plus 2 hours"
        ExpiresByType application/x-shockwave-flash "now plus 2 hours"
        ExpiresDefault "now plus 2 hours"
        </IfModule>
    
    #访问控制
    <Directory /data/www/>
       Order deny,allow
       Deny from all
       Allow from 127.0.0.1
    </Directory>
    
    #针对请求的URI限制
    #<filesmatch "(.*)admin(.*)">
    #   Order deny,allow
    #      Deny from all
    #         Allow from 127.0.0.1
    #         </filesmatch>
    
    #全部PASS
    #<Directory>
    #Order deny,allow
    
    #全部NOT PASS
    #<Directory>
    #Order allow,deny
    
    #针对网站的用户上传的文件进行限制php解析
    <Directory /data/www/data>
            php_admin_flag engine off
            <filesmatch "(.*)php">
            Order deny,allow
            Deny from all
            Allow from 127.0.0.1
            </filesmatch>
    </Directory>
    
    #防盗链
    SetEnvIfNoCase Referer "^htt://.*aidu.com" local_ref
        SetEnvIfNoCase Referer "^htt://.*sohu.com" local_ref
        SetEnvIfNoCase Referer "^$"" local_ref
     <filesmatch ".(txt|doc|mp3|zip|rar|jpg|gif|png)">
        Order Allow,Deny
        Allow from env=local_ref
    </filesmatch>
    </VirtualHost>
    
    #2.mod_headers
    #<IfModule mod_headers.c>
        #htm,html,txt类的文件缓存 存放一个小时
        #   <filematch ".(htmlhtm|txt)$">
        #header set cache-control "max-age=3600"
        # </filematch>

    写配置文件会遇到的错误 :

    1.

    /usr/local/apache2/bin/apachectl -t
    Syntax error on line 34 of /usr/local/apache2/conf/extra/httpd-vhosts.conf:
    AuthUserFile takes 1-2 arguments, text file containing user IDs and passwords

    1.因为 多出了 AllowOverride AuthConfig 

    2. 34行有中文注释,将其删除即可

    ==================我是分割线。===============

    配置后的测试 :

    //用户认证的测试 
    
    对某一个网页进行 用户认证 的设置 
    
    /data/.htpasswd 是存放网页用户名和密码的文件 
    
    需要用htpasswd -c 选项进行首次创建文件

    [root@localhost ~]# htpasswd -mbc .htpasswd Neo 111111

    //创建用户名为Neo,密码为111111的帐户
    然后 apachectl
    -t apachectl graceful 然后去浏览器访问被限定的文件夹 ====================== //默认主机 --如果不配置 ,只要在电脑的hosts配置了另外的域名 也可以访问到指定的ip 添加了默认主机 就可以进行限制 只有我们配置的域名才可访问到本服务器的ip 测试: 先在 hosts 服务器的ip里 配置多一个不属于我们配置文件里的域名 如 www.aaa.com 然后在浏览器里 访问域名 www.aaa.com 可以跳转到我们的网站 然后我们配置虚拟主机 再去访问 www.aaa.com 就已经不行了 --则配置完成 ======================= //域名跳转 配置好后 用浏览器直接访问配置的域名 测试 或者用curl来进行测试 curl -x+本机ip+port +域名 -I ====================== //日志切割 对网站进行刷新 根据配置日志的路径 然后从centos看文件夹里是不是出现了日志 ====================== //不记录指定文件的日志 先对已存在的日志 进行清空 然后刷新网页 再去查看日志 是不是还存在那些指定文件的日志 ======================= //静态缓存 配置好后 到浏览器中 对某个已经配置的文件右键 或F12 查看文件的路径 然后在Linux中用curl 来访问 例如 curl -x127.0.0.1:80 'http://www.test.com/static/image/common/logo.png' -I 从cache-control这一栏就可以知道 ,是否已经配置好 是否与我们配置的时间一致 ====================== //防盗链 配置好后, 再去以白名单 和黑名单的身份去访问被限制的文件类型 看是否白名单显示 黑名单则不可以显示
  • 相关阅读:
    flask路由+视图
    flask基本使用1
    返回对象时字典化
    python3连接redis
    selected_related和prefetch_related
    django删除migrations导致初始化数据库失效
    vue添加拦截器(身份认证)以及cookie认证
    vue添加使用全局变量
    列表:动手试一试
    转来的字符串编辑方式
  • 原文地址:https://www.cnblogs.com/frankielf0921/p/5374229.html
Copyright © 2011-2022 走看看