apache配置-域名跳转、日志切割、静态缓存、防盗链

·/usr/local/apache2/bin/apachectl -M:查看安装了哪些模块     
·/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】
在虚拟主机配置文件中加入:

vim  /usr/local/apache/conf/extra/httpd-vhost.conf        
    <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\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\""   combined

LogFormat "%h %l %u %t \"%r\" %>s %b"  common   
(2)访问日志格式解释:
         %h:客户机的IP地址
         %l:客户机登陆名称
         %u:认证用户
         %t:访问的日期、时间
         %r:客户访问的方式,访问的什么资源,什么协议
         %>s 请求对应的状态码 (2开头正常,3开头被重定向,4开头客户端存在错误,5开头服务器端遇到错误)   
         %b:传送的字节数
         % {Referer}:从哪个页面来的(比如从百度搜索到的QQ空间,那Referer就是百度)
         %{User-Agent}:客户用的什么浏览器

(3)配置日志切割:避免产生大文件, 可以每天生成一个
·在httpd.conf里定义日志格式,虚拟主机里只是调用日志格式
·/usr/local/apache2/conf/httpd.conf中定义日志格式
·LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\""   combined 
·/usr/local/apache2/conf/extra/httpd-vhost.conf用rotatelog工具做日志切割时调用

·在虚拟主机配置文件中加入 
 CustomLog  "|/usr/local/apache2/bin/rotatelogs -l /usr/local/apache2/logs/access_%Y%m%d.log 86400 " combined
·第一段:rotatelog工具路径  第二段:日志存放路径和命名(按年月日命名)  第三段:调用httpd.conf中的日志格式为combined格式

3.静态缓存 

·定义图片、css、js、swf过期时间   
·使用的模块:mod_expires.c 
·在虚拟主机配置文件中加入:

  vim /usr/local/apache2/conf/extra/http-vhosts.conf           
   <IfModule  mod_expires.c>
      ExpiresActive on                                     有效期[打开]
      ExpiresByType image/gif   "access plus 1 days"       过期的类型 ,访问超过一天  
      ExpiresByType  text/css   "access plus 2 hours"
      ExpiresByType  appliction/javescripts  "access plus 2 hours"
    </IfModule>

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错误,401错误是有用户认证 需要加 -u参数 
5.某个目录下禁止解析php(防止看到源代码)

 <Directory /data/www/uc_server>
      php_admin_flag_engine off       关闭解析
        <filesmatch "(.*)php">        文件匹配是php结尾的
           Order Deny,Allow           先拒绝后允许
           Deny from all              拒绝所有
         </filesmatch>
  </Directory>
时间: 2024-08-01 06:40:50

apache配置-域名跳转、日志切割、静态缓存、防盗链的相关文章

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

·/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/ap

Apache 配置域名跳转

域名跳转需要在虚拟主机配置中添加别名和一个 rewrite 模块,如下,配置当访问 www.aaa.com 时跳转到 www.test.com [[email protected] ~]# vim /usr/local/apache2/conf/extra/httpd-vhosts.conf <VirtualHost *:80> DocumentRoot "/data/www" ServerName www.test.com ServerAlias www.aaa.com

LAMP(3)--apache配置域名跳转

★需求实现 之前搭建discuz时候使用的域名为www.caoyue111.com 现在我们要求实现访问域名www.hera111.com 时跳转到www.caoyue111.com ★配置步骤 我们只需在相应的虚拟主机中加入以下内容 vim /usr/local/apache2/conf/extra/httpd-vhosts.conf <IfModule mod_rewrite.c>   <== 打开rewrite.c模块(可用apachectl -M查看有无此模块)   Rewrit

Apache配置域名跳转

需求:要把访问域名 www.ppt.com(或www.ppt1.com) 的域名转发到 www.tpp.com 上实现: [[email protected] abc]# vim /usr/local/apache2/conf/extra/httpd-vhosts.conf <IfModule mod_rewrite.c>    RewriteEngine on    RewriteCond %{HTTP_HOST} ^www.ppt.com$    RewriteRule ^(.*)$ ht

apache配置虚拟主机和日志切割

本文是关于apache虚拟主机相关的配置,安装配置过程请参考http://ly36843.blog.51cto.com/3120113/1642118 一.配置www.a.com虚拟主机 编辑/usr/local/apache/conf/httpd.conf文件 [[email protected] ~]# vim /usr/local/apache/conf/httpd.conf  Include conf/extra/httpd-vhosts.conf   #打开这一样 编辑文件/usr/l

apache 配置用户认证 域名跳转 日志 静态缓存文件 防盗链接

配置文件:/usr/local/apache2/conf/extra/httpd-vhosts.conf <VirtualHost *:80> ServerAdmin [email protected] DocumentRoot "/data/www" ServerName www.1.com ServerAlias www.a.com www.b.com #配置用户认证 <Directory /data/www> AllowOverride AuthConfi

Apache配置域名301跳转

配置域名301跳转 在有两个域名的情况下我们需要设置一个主域名(将次域名跳转到主域名下),操作命令如下: vim /usr/local/apache2/conf/extra/httpd-vhosts.conf 在 # CustomLog "logs/dummy-host.example.com-access_log" common下面一行添加如下: <IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{HTTP_HO

apache的rewrite重写、日志切割、防盗链

一.rewrite重写 mod_rewrite 提供了基于正则表达式规则动态修改传入的请求的 URL 的方法.可以定义任意的的url映射到内部的站点文件中 1演示现象,解决效果,得出rewrite概念 2-1如何实现具体讲解步骤,可以带入原理 2-2实践 3剖析实现原理,提升知识面 4小结 1.rewrite需求 我们在使用Apache做为Web服务器时,有时候出于SEO优化或者是url路径的简洁,需要将输入的url转换成更为友好的url,这时候就可以使用rewrite重写功能. rewrite

Apache配置301跳转

我们现在有test和aaa在访问这个discuz论坛,那么这两个域名坑定会分一个主次,尤其是现在搜索引擎他会有一个排名权重,那么官方语言叫做"PR",那么PR高低会有影响的,那搜索引擎分辨不出主次,所以我们现在帮搜索引擎分清主次,这个时候我们就有一种方法叫做跳转:域名的跳转,访问aaa.com跳转到test.com,那我配置一下编辑虚拟主机配置文件 [[email protected] ~]# vim /usr/local/apache2/conf/extra/httpd-vhosts