0814防盗链访问控制代理

12.13 Nginx防盗链

?配置如下,可以和不记录日志和过期时间配置结合起来

location ~* ^.+\.(gif|jpg|png|swf|flv|rar|zip|doc|pdf|gz|bz2|jpeg|bmp|xls)$

{

expires 7d;

valid_referers none blocked server_names  *.test.com ;

#这里定义.test.com为白名单

if ($invalid_referer) {

return 403;

#这里表示如果不在白名单内直接回馈403

}

access_log off;

}

/usr/local/nginx/sbin/nginx -t

/usr/local/nginx/sbin/nginx -s reload

curl -I -e "http://www.baidu.com/1.txt" -x127.0.0.1:80  test.com/1.gif  显示403

curl -I -e "http://www.test.com/1.txt" -x127.0.0.1:80  test.com/1.gif     显示200

说明配置成功

12.14 Nginx访问控制

限制某些ip不能访问,或者只允许一部分访问

需要制作白名单,先allow写ip地址,再把其他ip全部限制deny all

配置如下:

location /admin/

{

allow 192.168.153.130;

allow 127.0.0.1;

deny all;

}

创建location指定的目录

? mkdir /data/wwwroot/test.com/admin/ (已经有了这个文件夹不用再建了)

? echo “test,test”>/data/wwwroot/test.com/admin/1.html

? -t && -s reload

? curl -x127.0.0.1:80 test.com/admin/1.html -I

? curl -x192.168.204.131:80 test.com/admin/1.html -I 这两个ip都可以访问到

上面配置ip也可以是ip段,就可以写成allow 192.168.153.0/24

如果只拒绝几个ip的访问就是

location /admin/

{

deny 192.168.188.1;

deny 192.168.8.8;

}

? 可以匹配正则来限制

网站被黑,数据库被盗窃,没有禁止上传图片的php解析

这样可以把访问的URL中带有abc或者image的字符串,并且为php请求的拒绝访问

location ~ .*(abc|image)/.*\.php$

{

deny all;

}

测试:

/usr/local/nginx/sbin/nginx -t

/usr/local/nginx/sbin/nginx -s reload

mkdir /data/wwwroot/test.com/abc

echo "111" > /data/wwwroot/test.com/abc/1.php

curl -x127.0.0.1:80 test.com/abc/1.php -I

结果为403拒绝访问

echo "111" > /data/wwwroot/test.com/abc/1.txt

curl -x127.0.0.1:80 test.com/abc/1.php -I

结果200可以访问,实验成功,禁止了abc的php解析

?根据user_agent限制,用的很多

需求:受到cc攻击,要禁掉百度蜘蛛,想做被隐藏的网站

if ($http_user_agent ~ ‘Spider/3.0|YoudaoBot|Tomato‘)

{

return 403;

}

这里~指匹配符号,只要有Spider/3.0或YoudaoBot或Tomato字符串的直接被拒绝,返回403

? deny all和return 403效果一样

实验:

/usr/local/nginx/sbin/nginx -t

/usr/local/nginx/sbin/nginx -s reload

模拟user_agent的方法:

-A 随意指定自己这次访问所宣称的自己的浏览器信息

curl -A “Tomatoabcabcabc”-x127.0.0.1:80 test.com/abc/1.txt

显示为403拒绝访问

如果关键词大小写有改动就恢复200,需要忽略大小写就~*(~后面加*)

12.15 Nginx解析php相关配置

?vim /usr/local/nginx/conf/vhost/test.com.conf配置如下:

location ~ \.php$

{

include fastcgi_params;

fastcgi_pass unix:/tmp/php-fcgi.sock; (此处错误出现502,找不到sock)

#fastcgi_pass 127.0.0.1:9000

#fastcgi_pass 两种监听格式,但是要保证Nginx和php-fpm中格式一致

fastcgi_index index.php;

fastcgi_param SCRIPT_FILENAME /data/wwwroot/test.com$fastcgi_script_name;

#这里的地址和最上面的root保持一致

}

? fastcgi_pass 用来指定php-fpm监听的地址或者socket

? php文件目录usr/local/php-fpm/var/php-fpm.log中sock地址要写到虚拟主机配置文件fastcgi_pass中

不监听sock换成监听ip和端口,两个配置文件修改后保持一致否则502,需要重启

netstart -lntp 查看监听端口

测试:

vim /data/wwwroot/test.com/3.php

写入<?php   phpinfo();

curl -x127.0.0.1:80  test.com/3.php   出现不能解析

配置后再次curl可以解析

502报错问题:

检查虚拟主机配置文件sock和php文件目录定义的sock是否一致

修改fastcgi_pass后报错502

nginx错误日志:cat /usr/local/nginx/logs/nginx_error.log

vim /usr/local/php-fpm/etc/php-fpm.conf 查看php文件目录定义的sock

修改为监听ip端口

查看端口是否监听

然后去修改虚拟主机配置文件

两边配置文件修改完成,这时curl -x127.0.0.1:80  test.com/3.php解析成功

此外502还有一种可能,php-fpm资源耗尽,查询很慢,解决为优化

12.16 Nginx代理

用户需要访问web服务器,需要找一个中间者,中间者与两面都互通,就能做一个代理者

中国到美国很慢,到香港快,香港到美国快,就可以通过香港代理访问美国服务器

创建新的配置文件

该虚拟主机只用作代理服务器,不需要访问本地文件,所以不需要设置站点根目录

? cd /usr/local/nginx/conf/vhost/

? vim proxy.conf //加入如下内容

server

{

listen 80;

server_name ask.apelearn.com;

location /

{

proxy_pass      http://121.201.9.155/;

#这里是告诉Nginx代理服务器,真正要被访问的web服务器ip是多少

proxy_set_header Host   $host;

#Host指的是要访问的域名servername,就是代理服务器真正访问的域名ask.apelearn.com

proxy_set_header X-Real-IP      $remote_addr;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

}

}

代理前后对比

curl -x127.0.0.1:80 ask.apelearn.com/robots.tx

显示为404

/usr/local/nginx/sbin/nginx -t

/usr/local/nginx/sbin/nginx -s reload

curl -x127.0.0.1:80 ask.apelearn.com/robots.txt

显示成功

这里测试是指通过本地ip访问到远程站点,这里设置的代理服务器是虚拟机,web服务器是阿铭论坛

出现代理需求就定义远程服务端,就是web服务器的ip

扩展

http://ask.apelearn.com/question/9109502问题汇总

http://blog.lishiming.net/?p=100location优先级

时间: 2024-12-07 21:40:54

0814防盗链访问控制代理的相关文章

nginx防盗链和代理配置

nginx防盗链 防盗链的意义在于防止网站中的文件链接在其他网站中被使用,盗链的文件或图片在其他网站中加载,在这个过程中,实质上加载的请求是被盗链服务器上响应的,这就造成了一些不正常流量(并非自己网站的正常打开页面加载的处理请求)造成了消耗不必要的带宽要实现防盗链,需要了解HTTP协议中的请求头部的Referer头域和采用URL的格式表示访问当前网页或者文件的源地址.通过该头域的值,我们可以检测到访问目标资源的源地址.这样,如果我们检测到Referer(rui'fe~)头域中的值并不是自己站点内

7.配置防盗链,访问控制

[toc] 11.25 配置防盗链 1.防盗链和referer概念 防盗链,通俗讲就是不让别人盗用你网站上的资源,这个资源指的是图片.视频.歌曲.文档等,在这之前需要理解一下referer的概念,如果你通过A网站的一个页面http://a.com/a.html里面的链接去访问B网站的一个页面http://b.com/b.html,那么这个B网站页面的referer就是http://a.com/a.html.也就是说,一个referer就是一个网址. 2.编辑虚拟主机配置文件httpd-vhost

nginx防盗链+访问控制+限制指定目录运行php+解析支持php+现在user_agent

nginx防盗链 作用:防止其他网站引用本web站图片与视频资源,导致本站流量过大,从而造成不必要的经济开支:比如:本网站test.com有图片文件1.gif,而B网站使用test.com/1.gif 引用我们的图片,那么本网站的图片访问就会上升,但是带宽会增加,访问test.com的用户量却没有增加,出口带宽成本缺增加了: 编辑虚拟配置文件 vim /usr/local/nginx/conf/vhost/test.com.conf 增加代码 location ~* ^.+\.(gif|jpg|

配置防盗链 访问控制Directory 访问控制FilesMatch

原文地址:https://www.cnblogs.com/xiaobo-Linux/p/8541412.html

配置防盗链、访问控制Directory针对目录、访问控制FilesMatch针对链接

配置防盗链 访问控制Directory针对目录 访问控制针对目录FilesMatch针对连接 原文地址:http://blog.51cto.com/13515599/2083516

Nginx防盗链、Nginx访问控制、Nginx解析php相关配置、Nginx代理

Nginx防盗链 1.[[email protected] test.com]# vi /usr/local/nginx/conf/vhost/test.com.conf #+表示1或者多个,+前面的字符 location ~* ^.+\.(gif|jpg|png|swf|flv|rar|zip|doc|pdf|gz|bz2|jpeg|bmp|xls)$ { expires 7d; valid_referers none blocked server_names  *.test.com ; #定

LNMP(nginx防盗链,访问控制,解析php相关配置,Nginx代理,常见502问题)

一.nginx防盗链 nginx防盗链: [[email protected] ~]# vim /usr/local/nginx/conf/vhost/test.com.conf   添加以下内容 location ~* ^.+\.(gif|jpg|png|swf|flv|rar|zip|doc|pdf|gz|bz2|jpeg|bmp|xls)$ { expires 7d; valid_referers none blocked server_names  *.test.com ;      

Nginx的防盗链、Nginx的访问控制、Nginx解析php的配置、Nginx代理

Nginx的防盗链 Nginx的访问控制 禁止上传图片目录里php解析 Nginx解析php的配置 Nginx代理 原文地址:http://blog.51cto.com/13515599/2087315

Nginx防盗链 Nginx访问控制 Nginx解析php相关配置 Nginx代理

12.13 Nginx防盗链cd /usr/local/nginx/conf/vhostvi test.com.conf将以上内容复制到下图位置测试,成功前提data/wwwroot/test.com目录下要有1.gif12.14 Nginx访问控制cd /usr/local/nginx/conf/vhostvi test.com.confFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=" alt="Nginx