lamp基本配置

配置静态元素过期时间

那到底能缓存多久呢?如果服务器上的某个图片更改了,那么应该访问新的图片才对。这就涉及一个静态文件缓存时长的问题,也叫作“缓存过期时间”。在httpd的配置文件中,我们是可以控制这个时间的
配置httpd-vhosts.conf

<VirtualHost *:80>osts.conf
ServerAdmin webmaster@dummy-host.example.com
DocumentRoot "/usr/local/apache2.4/docs/www.111.com"
ServerName www.111.com
ServerAlias 111.com

<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/javascript "now plus 2 hours"
    ExpiresByType application/x-shockwave-flash "now plus 2 hours"
    ExpiresDefault "now plus 0 min"
    
    </IfModule>
    	ErrorLog "logs/111.com-error_log"
	 CustomLog "logs/111.com-access_log" combined
	</VirtualHost>
 //这里gif,jpeg, png格式的文件过期时长为1天,css. js. flash格式的文件过期时长为2小时

配置完成以后使用

 使用# /usr/local/apache2.4/bin/apachectl -t
 Syntax OK
 使用# /usr/local/apache2.4/bin/apachectl graceful 重新读取

检查httpd是否加载expirex模块

  #/usr/local/apache2.4/bin/apachectl -M |grep -i expires
  没有输出则说明当前httpd并不支持expires模块,所以需要修改配置文件
#vim /usr/local/apache2.4/conf/httpd.conf
搜索关键词expires,找到这一行
LoadModule expires_ module modules/mod_ expires .so
 //把前面#删掉

完成以后 -t 、graceful重新加载服务再次使用usr/local/apache2.4/bin/apachectl -M |grep -i expires 查看是否加载模块
在这里插入图片描述
有这行输出就说明正确加载expire模块 下面进行测试 上传linux文件
使用curl -xlocalhost:80 www.111.com/image/linux.jpeg -I
在这里插入图片描述
如图所示 max-age=86400说明将缓存86400秒,max-age=0说明没有该类型缓存文件

配置防盗链

防盗链,通俗讲,就是不让别人盗用你网站上的资源。这个资源,通常指的是图片、视频、歌曲、文档等。

配置防盗链先编辑主机配置文件:

#vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
    <VirtualHost *:80>
ServerAdmin webmaster@dummy-host.example.com
DocumentRoot "/usr/local/apache2.4/docs/www.111.com"
ServerName www.111.com
ServerAlias 111.com

 <Directory /usr/local/apache2.4/docs/www.111.com>
SetEnvIfNoCase Referer "http://www.111.com" local_ref
SetEnvIfNoCase Referer "http://111.com" local_ref
SetEnvIfNoCase Referer "^$" local_ref
<filesmatch "\.(txt|doc|mp3|zip|rar|jpg|gif)">
    Order Allow,Deny
    Allow from env=local_ref
</filesmatch>

</Directory>
ErrorLog "logs/111.com-error_log"
CustomLog "logs/111.com-access_log" combined
</VirtualHost>

/首先定义允许访问链接的referer,其中^$为空referer,
//当直接在浏览器里输入图片地址去访问它时,它的referer就为空

配置完成以后使用 /usr/local/apache2.4/bin/apachectl -t /graceful 重新读取配置内容

  curl -e "http://www.douxue.com/123.php" -xlocalhost:80 				 www.111.com/image/linux.jpg -I
状态码为403,其中-e参数表示请求的来源
   curl -e "http://www.111.com/123.php" -xlocalhost:80   www.111.com/image/linux.jpg -I
白名单网页访问,状态码为200
 curl   -xlocalhost:80 www.111.com/image/linux.jpg -I
  空referer为白名单网页访问,状态码为200

验证成功在这里插入图片描述

访问控制-Diretory\FileMatch

访问控制限制白名单IP,针对文件和目录
先来看看怎么限制IP访问,编辑配置文件:

#vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
<VirtualHost *:80>
ServerAdmin webmaster@dummy-host.example.com
DocumentRoot "/usr/local/apache2.4/docs/www.111.com"
ServerName www.111.com
ServerAlias 111.com
<Directory /usr/local/apache2.4/docs/www.111.com/admin>
    Order deny,allow
    Deny from all
    Allow from 127.0.0.1
</Directory>
ErrorLog "logs/111.com-error_log"
CustomLog "logs/111.com-access_log" combined
</VirtualHost>

Directory是用来指定限制访问的目录,order定义控制顺序

配置完成以后使用绝对路径创建目录

mkdir /usr/local/apache2.4/docs/www.111.com/admin/

创建admin目录,模拟网站后台

# vi /usr/local/apache2.4/docs/www.111.com/admin/123.php   
 <?php
echo "Hello World!";
 ?>

使用-t、graceful重新读取 使用curl命令验证

 # curl    -x127.0.0.1:80 www.111.com/admin/123.php -I
状态码为200,可正常访问
# curl     -x192.168.150.144:80 www.111.com/admin/123.php -I
 状态码为403,拒绝访问

针对文件配置

编辑配置文件
#vim /usr/local/apache2 .4/conf/extra/httpd-vhosts.conf

<VirtualHost *:80>
ServerAdmin webmaster@dummy-host.example.com
DocumentRoot "/usr/local/apache2.4/docs/www.111.com"
ServerName www.111.com
ServerAlias 111.com
<Directory /usr/local/apache2.4/docs/www.111.com/>
    <FilesMatch "admin.php(.*)">
        Order deny,allow
        Deny from all
        Allow from 127.0.0.1
    </FilesMatch>
</Directory>
ErrorLog "logs/111.com-error_log"
CustomLog "logs/111.com-access_log" combined
</VirtualHost>

使用绝对路径在www.111.com下创建admin.php文件

 # vim admin.php
<?php
echo "This is admin.php";
?>

创建完成以后使用 -t、graceful验证及重新读取配置文件

使用curl验证配置

# curl   -x192.168.63.130:80 www.111.com/admin.php -I    
状态码403被拒绝
# curl   -x127.0.0.1:80 www.111.com/admin.php -I 
状态码200访问正常

验证成功
在这里插入图片描述

访问控制-禁止解析php

对于使用PHP语言编写的网站,有一些目录是有需求上传文件的。如果网站代码有漏洞,让黑客上传了一个用PHP写的木马,由于网站可以执行PHP程序,最终会让黑客拿到服务器权限。为了避免这种情况发生,我们需要把能上传文件的目录直接禁止解析PHP代码

编辑配置文件 vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf

<VirtualHost *:80>
ServerAdmin webmaster@dummy-host.example.com
DocumentRoot "/usr/local/apache2.4/docs/www.111.com"
ServerName www.111.com
ServerAlias 111.com
<Directory /usr/local/apache2.4/docs/www.111.com/upload>
    php_admin_flag engine off
</Directory>
 ErrorLog "logs/111.com-error_log"
 CustomLog "logs/111.com-access_log" combined
</VirtualHost>

配置完成以后使用-t、graceful命令验证查看是否有报错信息并重新读取配置文件

创建upload目录 编辑upload/123.php文件

vim upload/123.php 
<?php
echo "www.111.com/123.php";
?>

完成配置以后使用curl命令验证

 curl   -x127.0.0.1:80 www.111.com/upload/123.php

允许访问
在这里插入图片描述
不允许访问

继续编辑配置文件

 <VirtualHost *:80>
ServerAdmin webmaster@dummy-host.example.com
DocumentRoot "/usr/local/apache2.4/docs/www.111.com"
ServerName www.111.com
ServerAlias 111.com
<Directory /usr/local/apache2.4/docs/www.111.com/upload>
    php_admin_flag engine off
    <FilesMatch (.*)\.php(.*)>
       Order allow,deny
       Deny from all
    </FilesMatch>
</Directory>
ErrorLog "logs/111.com-error_log"
CustomLog "logs/111.com-access_log" combined
</VirtualHost>
使用-t、graceful命令 重新读取配置文件 
使用curl命令验证 curl   -x127.0.0.1:80 www.111.com/upload/123.php

在这里插入图片描述

访问控制-user_agent

user_agent是指用户浏览器端的信息。比如你是用IE的还是Firefox浏览器的。有些网站会根据这个来调整打开网站的类型,如是手机的就打开wap,显示非手机的就打开PC常规页面。

编辑配置文件 #vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf

<VirtualHost *:80>
ServerAdmin webmaster@dummy-host.example.com
DocumentRoot "/usr/local/apache2.4/docs/www.111.com"
ServerName www.111.com
ServerAlias 111.com
<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteCond %{HTTP_USER_AGENT} .*curl.* [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} .*baidu.com.* [NC]
    RewriteRule  .*  -  [F]
</IfModule>
ErrorLog "logs/111.com-error_log"
CustomLog "logs/www.111.com-access_log" combined
</VirtualHost>

%{HTTP_USER_AGENT}为user_agent的内置变量,NC代表“不区分大小写”,F代表Forbidden,OR表示“或者”,[F]代表forbidden。

配置完成以后使用-t、graceful验证

验证完成以后使用curl命令查看

curl   -x127.0.0.1:80 www.111.com/upload/123.php

在这里插入图片描述
打开浏览器访问www.111.com/upload/123.php
在这里插入图片描述

反向测试
修改配置文件

RewriteCond%{HTTP_USER_AGENT}.*curl.*[NC,OR]
将curl改为Mozilla(浏览器客户端)
RewriteCond%{HTTP_USER_AGENT}.*Mozilla.*[NC,OR]

修改完成以后使用/usr/local/apache2.4/bin/apachectl-t
SyntaxOK

/usr/local/apache2.4/bin/apachectlgraceful重新读取配置文件

使用curl命令验证

curl-x127.0.0.1:80www.111.com/upload/123.php
在这里插入图片描述
这是我们使用浏览器访问时
在这里插入图片描述
指定客户端

修改配置文件 将Mozlla该为curl

使用curl -A Mozllia -x127.0.0.1:80 www.111.com/upload/123.php测试
这里的 -A 参数指定客户端的用户代理标头,即User-Agent
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值