码迷,mamicode.com
首页 > Web开发 > 详细

Apache配置域名跳转、日志切割、静态缓存、防盗链、访问控制

时间:2015-09-01 00:00:46      阅读:426      评论:0      收藏:0      [点我收藏+]

标签:配置文件   local   切割   网站   

·/usr/local/apache2/bin/apachectl  -M:查看安装了哪些模块

·/usr/local/apache/bin/apachectl   -V:查看使用的模式

·/usr/local/apache2/bin/apachectl  -t:检查语法错误

·/usr/local/apache2/bin/apachectl  -l:查看安装的库文件

·/usr/local/apache2/bin/apachectl graceful:重新加载配置

·/usr/local/apache2/htcocs         主页存放目录

·/usr/local/apache2/bin/apachectl  启动文件目录

·/usr/local/apache2/conf           配置文件路径

1.域名跳转

·网站可以设置域名多个域名别名,设置访问别名是跳转到主域名

·主域名为www.1.com别名为www.a.com,www.b.com。访问别名时跳转到www.1.com

·301是永久跳转,302是暂时跳转,有多个域名要跳转与要加【OR】

·模块:rewrite

配置:    

<IfModule mod_rewrite.c>

RewriteEngine  on                                       重写引擎 [开启]

RewriteCond   %{HTTP_HOST}  ^www.a.com$                 重写条件:是www.a.com时

RewriteRule   ^/(.*)$  www.1.com /$1  [R=301,L]        重写规则:跳转到www.1.com

</IfModule>

2.日志轮询(切割)

(1)Apache主配置文件中定义的日志格式,第一种是复杂格式,第二种是普通格式

LogFormat "%h %l %u %t \"%r\" %&gt;s %b \"%{Referer}i\" \"%{User-Agent}i\""   combined

LogFormat "%h %l %u %t \"%r\" %&gt;s %b"   common

(2)访问日志格式解释:

%h:客户机的IP地址

%l:客户机登陆名称

%u:认证用户

%t:访问的日期、时间

%r:客户访问的方式,访问的什么资源,什么协议

%>s 请求对应的状态码  #2开头正常,3开头被重定向,4开头客户端存在错误,5开头服务器端遇到错误

%b:传送的字节数

%{Referer}:   从哪个页面来的(比如从百度搜索到的QQ空间,那Referer就是百度

%{User-Agent}:客户用的什么浏览器

(3)配置日志切割:避免产生大文件, 可以每天生成一个

·在httpd.conf里定义日志格式,虚拟主机里只是调用日志格式

配置:

SetEnvIf Request_URI  ".*\.gif$ "    image-request     #定义不记录进日志的内容,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

CustomLog "|/usr/local/apache/bin/rotatelogs -l /var/log/access_%Y%m%d.log 86400" combined env=!image-request  

#env=!image-request 只记录没被image-requset的内容。 

3.静态缓存

·好处:用户第一次访问时,把定义的缓存在浏览器中,第二次访问就不需要再次请求,加快访问速度

·定义图片、css、js、swf过期时间

·模块:mod_expires.c

配置

<IfModule mod_expires.c>

ExpiresActive on                                #有效期[打开]

ExpiresByType image/gif  "access plus 1 day"    #过期的类型 ,访问超过一天

ExpiresByType image/jpeg "access plus 24 hours"

ExpiresByType image/png  "access plus 24 hours"

ExpiresByType image/css  "now  plus 2 day"

ExpiresByType application/javascript       "now plus 2 hours"

ExpiresByType application/shockwave-flash  "now plus 2 hours"

ExpiresDefault "now plus 0 min"

</IfModule>

·缓存时间测试:curl -x127.0.0.1:80 www.a.com/1.gif #查看过期时间

4.防 盗链 

·防止网站的图片、文档、音乐等格式他人盗用链接,只允许指定的域名可以链接

·盗链:把别人网站上的一张图片,复制链接,然后发在自己的网站上,用户来访问自己网站,承受负担和流量的是别人的服务器。

配置:

<Directory  /data/www>

SetEnvIfNoCase Referer  "www.1.com"   local_ref        #定义访问的域名

SetEnvIfNoCase Referer  "www.a.com"   local_ref        #定义访问的域名

SetEnvIfNoCase Referer  "www.b.com"   local_ref        #定义访问的域名

SetEnvIfNoCase Referer  "^$"          local_ref

  <filesmatch "txt|doc|mps|rar|zip|jpeg|png|jpg|gif">  #定义禁止盗链的格式

     Order Allow,Deny

     Allow from env=local_ref                          #这里设置规则,允许还是不允许

  </filesmatch>

</Directory>

·使用curl -e  检测防盗链

·解释:域名是SetEnvIfNoCase 中定义的才可以访问filesmatch中定义的禁止盗链的内容

·注意:如果是上边定义的域名以外的域名会显示403错误

·其他网站使用盗链地址出现403错误

5.访问控制

·禁止用IP访问网站

   <Directory /data/www>

     Order allow,deny

     Deny from all

   </Directory> 

·对wordpress后台主页做访问控制

  <Directory /data/www/wp-admin>

     <filesmatch "index.php">

       Order deny,allow

       Deny from all

       Allow from 127.0.0.1

     </filesmatch>

  </Directory>

测试:如果不是本机进入后台网页进入后台,出现403 forbidden。

6.禁止解析php(防止看到源代码)

  <Directory /data/www/wp-admin>

      php_admin_flag engine off    #关闭解析

        <filesmatch "(.*)php">     #/data/www/wp-admin目录下任何php的文件,都禁止解析

          Order deny,allwo

          Deny from all

        </filesmatch>

  </Directory>

7.伪静态

加入到rewrite模块中

RewriteCond %{QUERY_STRING} ^(.*)$

RewriteRule ^/topic-(.+)\.html$ /portal.php?mod=topic&topic=$1&%1

RewriteCond %{QUERY_STRING} ^(.*)$

RewriteRule ^/article-([0-9]+)-([0-9]+)\.html$ /portal.php?mod=view&aid=$1&page=$2&%1

RewriteCond %{QUERY_STRING} ^(.*)$

RewriteRule ^/forum-(\w+)-([0-9]+)\.html$ /forum.php?mod=forumdisplay&fid=$1&page=$2&%1

RewriteCond %{QUERY_STRING} ^(.*)$

RewriteRule ^/thread-([0-9]+)-([0-9]+)-([0-9]+)\.html$ /forum.php?mod=viewthread&tid=$1&extra=page\%3D$3&page=$2&%1

RewriteCond %{QUERY_STRING} ^(.*)$

RewriteRule ^/group-([0-9]+)-([0-9]+)\.html$ /forum.php?mod=group&fid=$1&page=$2&%1

RewriteCond %{QUERY_STRING} ^(.*)$

RewriteRule ^/space-(username|uid)-(.+)\.html$ /home.php?mod=space&$1=$2&%1

RewriteCond %{QUERY_STRING} ^(.*)$

RewriteRule ^/blog-([0-9]+)-([0-9]+)\.html$ /home.php?mod=space&uid=$1&do=blog&id=$2&%1

RewriteCond %{QUERY_STRING} ^(.*)$

RewriteRule ^/archiver/(fid|tid)-([0-9]+)\.html$ /archiver/index.php?action=$1&value=$2&%1

RewriteCond %{QUERY_STRING} ^(.*)$

RewriteRule ^/([a-z]+[a-z0-9_]*)-([a-z0-9_\-]+)\.html$ /plugin.php?id=$1:$2&%1


本文出自 “翟军铭的linux博客” 博客,请务必保留此出处http://zhaijunming5.blog.51cto.com/10668883/1690308

Apache配置域名跳转、日志切割、静态缓存、防盗链、访问控制

标签:配置文件   local   切割   网站   

原文地址:http://zhaijunming5.blog.51cto.com/10668883/1690308

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!