今天测试接口,总是出问题,测试了两天,整个流程就卡在最后一步。

每次采用curl,request等请求访问我的服务器都会返回403状态码,网上找了很多资料

有权限的,有静态文件的,然而很多都没有什么卵用,天下文章一大抄

找了公司的技术总监帮我看了下,原来是nginx里配置了反爬策略,导致有些请求过不来

server {
listen ;
server_name xxx.xxx.com;
charset utf-; #include /etc/nginx/anti_spider.conf; ###就这个破玩意,
# max upload size
client_max_body_size 75M; location /static {
alias /home/data/my_web_project/idfa_switch/allstatic;
} location / {
uwsgi_pass django;
include uwsgi_params;
} }

接下来看看这个破东西到底是什么

#禁止Scrapy等工具的抓取
if ($http_user_agent ~* (Scrapy|Curl|HttpClient)) {
return ;
} #禁止指定UA及UA为空的访问
if ($http_user_agent ~ "WinHttp|WebZIP|FetchURL|node-superagent|java/|FeedDemon|Jullo|JikeSpider|Indy Library|Alexa Toolbar|AskTbFXTV|AhrefsBot|CrawlDaddy|Java|Feedly|Apache-HttpAsyncClient|UniversalFeedParser|ApacheBench|M
icrosoft URL Control|Swiftbot|ZmEu|oBot|jaunty|Python-urllib|lightDeckReports Bot|YYSpider|DigExt|HttpClient|MJ12bot|heritrix|EasouSpider|Ezooms|BOT/0.1|YandexBot|FlightDeckReports|Linguee Bot|^$" ) { return 403;
} #禁止非GET|HEAD|POST方式的抓取
if ($request_method !~ ^(GET|HEAD|POST)$) {
return ;
} #屏蔽单个IP的命令是
#deny 123.45.6.7
#封整个段即从123.0.0.1到123.255.255.254的命令
#deny 123.0.0.0/
#封IP段即从123.45.0.1到123.45.255.254的命令
#deny 124.45.0.0/
#封IP段即从123.45.6.1到123.45.6.254的命令是
#deny 123.45.6.0/ # 以下IP皆为流氓
# deny 58.95.66.0/;

可以看到很多请求过来都是返回403.。这次教训记住了,第二次犯错。。

遇到403不只是权限和静态文件不存在,还有可能是反爬策略,找到这个文件,直接注释了就可以完美解决

nginx-伤心的事的更多相关文章

  1. 谈谈 Nginx 那点事【一】

    为什么突然决定总结Nginx ? 不知不觉8月份又要过完了,时间真是个无情的崽种. 写Nginx 首先,主要源于最近项目部署工作中和公司技术中心的人对接部署相关事宜流程太繁琐了.每个部门有各自的工作安 ...

  2. 编译安装nginx并修改版本头信息—参考实例

    今天做实验的时候,想起我那台yum安装的nginx+php-fpm+mysql服务器上的nginx版本有点低了,并且还要加两个第3方模块,就去nginx官网下载了最新稳定版nginx-1.0.6,好了 ...

  3. Nginx能干啥?

    Nginx能干的事很多,很强大.官方文档详见点我. Nginx的命令行参数 -? | -h 打印帮助信息 -c file 读取指定配置文件,而不是默认的nginx.conf -g directives ...

  4. nginx安装及优化

    1.pcre及nginx安装包下载 wget http://www.pcre.org/   pcre用yum安装即可 http://nginx.org/en/download.html 2.安装 -安 ...

  5. nginx reload的原理

    nginx启动时,会启动两个进程: 一个是Master进程和worker进程.改变配置后nginx做的事1)改变了nginx配置之后,HUP signal的信号需要发送给主进程.2)主进程首先会检测新 ...

  6. Linux–Nginx攻略

    什么是Nginx Nginx (“engine x”) 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器.Nginx是由Igor Sysoev为俄罗斯访问量第二的Ra ...

  7. Mysql(超级详细)

    Mysql(超级详细) (黑小子-余) 一.Mysql介绍 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品.MySQL 是最流行的关系型数据库管理 ...

  8. 关于oi

    2015-12-26 今天在机房,楼上的孩子发下来一个exe,善良无知的我打开了那个exe,然后电脑就关机了.萌萌的辅导老师看到之后就不再萌萌哒,他跑到五楼训斥了那群孩子们一顿(自行脑补).出于报复, ...

  9. C#中HashTable和快速排序的用法

    题目主要是写一个程序,分析一个文本文件(英文文章)中各个词出现的频率,并且把频率最高的10个词打印出来.   自从周四拿到题目以后,发现又要用到万恶的数据结构了,不得不说这是我的短板,所有上周20号到 ...

  10. <心得小记>2015年10月3日 14:16:42

    急事,慢慢说:大事,清楚的说: 小事,幽默的说了:没把握的事,谨慎的说: 没发生的事,不要胡说:做不到的事,别乱说: 伤害人的事,不能说:讨厌的事,对事不对人的说: 开心的事,看场合说:伤心的事,不要 ...

随机推荐

  1. Oracle排错总结

    一.Oracle常规恢复之不安全恢复 http://www.cnblogs.com/jyzhao/p/4723994.html#2.11

  2. kendo Grid 列添加自定义模板

    columns: [ {field: "行为",template: "<a href='#= 行为#'>#= 行为#</a>"}, {f ...

  3. 【LeetCode】Intersection of Two Linked Lists(相交链表)

    这道题是LeetCode里的第160道题. 题目讲的: 编写一个程序,找到两个单链表相交的起始节点. 如下面的两个链表: 在节点 c1 开始相交. 示例 1: 输入:intersectVal = 8, ...

  4. 【LeetCode】Roman to Integer(罗马数字转整数)

    这道题是LeetCode里的第13道题. 题目说明: 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M. 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1 ...

  5. Linux硬件配置信息

      在网上找了N久,发现了一篇不错的文档,转载一下: 1.查看机器所有硬件信息: dmidecode |more dmesg |more 这2个命令出来的信息都非常多,所以建议后面使用"|m ...

  6. BZOJ 2194 快速傅立叶之二 ——FFT

    [题目分析] 咦,这不是卷积裸题. 敲敲敲,结果样例也没过. 看看看,卧槽i和k怎么反了. 艹艹艹,把B数组取个反. 靠靠靠,怎么全是零. 算算算,最终的取值范围算错了. 交交交,总算是A掉了. [代 ...

  7. Android Studio升级到3.0,抛出Aapt2Exception异常

    android studiao错误: Android resource linking failedOutput: D:\_ASWorkSpace\phone_new\app\src\main\res ...

  8. POJ1861 Network

    Time Limit: 1000MS   Memory Limit: 30000KB   64bit IO Format: %lld & %llu Description Andrew is ...

  9. [C/C++] 结构体内存对齐用法

    一.为什么要内存对齐 经过内存对齐之后,CPU的内存访问速度大大提升; 内存空间按照byte划分,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定变量的时候经常在特定的内 ...

  10. 汉若塔系列续:汉诺塔VIII、汉诺塔IX、汉诺塔X。

    汉诺塔VIII,在经典汉若塔问题上,问n个盘子的情况下,移动m次以后,是什么状态.(与第七代互为逆命题) 我的思路:本质还是dfs,但是用m的值来指引方向,每搜一层确定第i个盘子在哪个塔,o(n)的算 ...