设为首页 收藏本站
查看: 814|回复: 0

[经验分享] Apache配置域名跳转、日志切割、静态缓存、防盗链、访问控制

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-9-1 09:04:53 | 显示全部楼层 |阅读模式
·/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别名为[url]www.a.com[/url],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



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-108153-1-1.html 上篇帖子: CentOS 6.6 安装apache 教程 下篇帖子: apache不能能够解析php文件 切割
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表