LAMP-----APACHE 配置:

内容大致分为 个板块(在discuz论坛环境下)

1:用户认证模式;

2:域名跳转

3:访问日志的切割与选择

4:静态缓存

5:防盗链

6:访问控制


虚拟主机配置文件中,需要加入

<Directory /data/www/admin.php>

   AllowOverride AuthConfig

AuthName "frank share web"   

AuthType Basic

AuthUserFile /data/.htpasswd      

require valid-user

</Directory>


保存后,然后

创建apache的验证用户


/usr/local/apache2/bin/htpasswd -c /data/.htpasswd  pekut(验证用户名)

然后输入俩次密码


#第一次创建用户要用到-c 参数 第2次添加用户,就不用-c参数

/usr/local/apache2/bin/htpasswd  /data/.htpasswd pekut1


如果你想修改密码,可以如下

/usr/local/apache2/bin/htpasswd -m .htpasswd test2

                                           -m 为 制定为md5加密算法


cat /data/.htpasswd    查看用户是否生成

重启apache,即可。


到此,你已经配置完成。下面介绍另一种方式:

##################################

vi   http.conf

在相应的虚拟主机配置文件段,加入

<Directory *>

            AllowOverride AuthConfig

            AuthName "自定义的"

            AuthType Basic

            AuthUserFile /data/.htpasswd    // 这个目录你可以随便写一个,没有限制

        require valid-user

</Directory>


保存后,然后

创建apache的验证用户


htpasswd -c /data/.htpasswd  test




需求:要把访问域名 www.domain1.com 的域名转发到 www.domain2.com 上

实现:在相关的虚拟主机中增加

   <IfModule mod_rewrite.c>

        RewriteEngine on        

        RewriteCond %{HTTP_HOST} ^www.onda.com$                 //条件(被跳转地址)

        RewriteRule ^/(.*)$ http://www.111.com/$1 [R=301,L]    //规则 (跳转至)

   </IfModule>

  效果  输入 www.onda.com/fdsfdf     跳转到  www.111.com/fdsfdf  


重启apache 服务生效


如果是多个域名重定向到一个域名

<IfModule mod_rewrite.c>

        RewriteEngine on

        RewriteCond %{HTTP_HOST} ^www.onda.com$ [OR]

        RewriteCond %{HTTP_HOST} ^www.ondas.com$

        RewriteRule ^(.*)$ http://www.111.com/$1 [R=301,L]

   </IfModule>

rewrite 支持正则



3. 配置apache的访问日志  (tail -f /tmp/1.log )


vim /usr/local/apa/conf/http     找到  LogFormat ( 此行最后 一段白色字母 是命名 )


新加一行LogFormat   最后 将命名更改掉 

技术分享

打开虚拟主机配置文件  清除注释  CustomLog "/tmp/1.log" suiyiname    将引号内修改为自己想指定的日志目录

技术分享


  写在     虚拟主机 配置文件   CustomLog "/tmp/1.log" suiyiname 的上面

用来节约磁盘空间,日志内不记录图片类文件

    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

    CustomLog "|/usr/local/apache2/bin/rotatelogs -l /tmp/access_%Y%m%d.log 86400" suiyiname env=!image-request

                             按照天来切割                                                     按每天算

                           


4.配置静态缓存(伪静态)

httpd.vhost 中加入


<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 hour"

    ExpiresByType application/x-javascript "now plus 2 hours"

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

    ExpiresDefault "now plus 0 min"

</IfModule>


注释: 

Expires 语法如下:

ExpiresByType type/encoding "<base> [plus] <num> <type>}*"


其中<base>是下列之一:

access

now (等价于‘access‘)

modification


plus关键字是可选的。


<num>必须是整数,


<type>是下列之一:

years

months

weeks

days

hours

minutes

seconds



5.防盗链

位置一般情况下在 /usr/local/apache/conf/httpd.conf

或者apache 2.2 的 /usr/local/apache2/conf/extra/httpd-vhost.conf

添加 


SetEnvIfNoCase Referer "^http://www.ccvita.com" local_ref

SetEnvIfNoCase Referer "^http://ccvita.com" local_ref

<filesmatch "\.(txt|doc|mp3|zip|rar|jpg|gif)"> 

Order Allow,Deny 

Allow from env=local_ref 

Deny from !env=local_ref 

</filesmatch> 


还一种写法,是用正则的,这种写法在各个版本的apache比较通用。

写法是 


SetEnvIfNoCase Referer "^http://.*\.yourdomin\.com" local_ref

SetEnvIfNoCase Referer ".*\.yourdomin\.com" local_ref

<filesmatch "\.(txt|doc|mp3|zip|rar|jpg|gif)"> 

Order Allow,Deny 

Allow from env=local_ref 

Deny from all

</filesmatch> 


配置完防盗链后  访问网站会出现无法显示 图片的情况。



6.访问控制

个东西确实挺容易让我们迷糊。其实也不难,只要你掌握这样一条规律即可:
首先举个例子:

Order deny,allow

deny  from all

allow from 127.0.0.1

我们判断的依据是这样的:
1. 看Order后面的,后面的优先级大于前面的
2. 如果deny在前,那么就需要看deny from 这句,然后看allow from 这一句
3.  规则是一条一条的匹配的,不管是deny在前还是allow在前,都是会生效的。比如例子中,先deny 了所有,然后又allow了127.0.0.1,所以127.0.0.1是通过的。

不妨再多举几个例子:

Order allow,deny

deny  from all

allow from 127.0.0.1
这个就会deny所有了,127.0.0.1也会被deny。因为顺序是先allow然后deny,虽然一开始allow了127.0.0.1,但是后面又拒绝了它。



Order allow,deny

deny from all
全部都不能通行



Order deny,allow

deny from all

全部都不能通行



Order deny,allow

全部都可以通行(默认的),记住即



Order allow,deny
全部都不能通行(默认的),记住即可



本文出自 “你我同行” 博客,请务必保留此出处http://ondali.blog.51cto.com/6650368/1611284

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。