HTTP幂等性

理解HTTP幂等性 基于HTTP协议的Web API是时下最为流行的一种分布式服务提供方式。无论是在大型互联网应用还是企业级架构中,我们都见到了越来越多的SOA或RESTful的Web API。为什么Web API如此流行呢?我认为很大程度上应归功于简单有效的HTTP协议。HTTP协议是一种分布式的面向资源的网络应用层协议,无论是服务器端提供Web服务,还是客户端消费Web服务都非常简单。再加上浏览器、Javascript、AJAX、JSON以及HTML5等技术和工具的发展,互联网应用架构设计表 ……

站点启用HTTPS需要注意的一些问题

静态资源的处理 在了解静态资源引用该如何处理之前,需要先了解Mixed Content(混合内容)的概念,所谓Mixed Content指的就是https页面中加载的http资源,又分为Optionally-blockable和Blockable 两类。 Optionally-blockable 主要指图片、音频、视频等资源,这类资源相对来说被篡改后对用户危害较小,不会造成严重危害的资源。这类资源一般位于<img>、<source>、<video>、<a ……

下载权限控制方案

要对下载的权限进行精确的控制(防止盗链,防止迅雷吸血,下载扣除积分等虚拟货币),以前接触的方法有几种: 通过rewrite不断地更改下载文件的url,并插入很多无意义的字符; 验证下载链接的来路,或者cookie; 通过服务器端程序(例如一个php文件),open文件,读取内容然后返回给客户端。 第一种方法很笨,而且吃力不讨好; 第二种方法很容易破解,因为referer和cookie都是客户端发出的,能够方便地伪造,而且迅雷对此已经是轻车熟路; 第三种方法是可行的有效的,所有的文件都经过一个程序 ……

nginx selinux log 相关

再来一篇关于 nginx 的 今天配置完 nginx,改了一下默认的日志输出目录,然后照例检查 nginx 配置文件,结果检查不通过,提示如下错误: nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: [emerg] open() “/data/log/www.cmiinv.com.access.log” failed (13: Permission denied) nginx: configuratio ……

nginx 报(13: Permission denied) while connecting to upstream 错误解决

新配置的nginx,做proxy转发时遇到错误,页面无法打开,access日志中报502错误,从nginx可以curl到后端页面,经查error日志,发现如下报错 2015/12/28 16:42:00 [crit] 1850#0: *1 connect() to 192.168.1.1:8080 failed (13: Permission denied) while connecting to upstream, client: ***.***.***.***, server: *****. ……

Nginx Error “client intended to send too large body”

上传附件时,一直报错,经查PHP和nginx的日志,发现nginx中一条错误日志:client intended to send too large body: 1336481 bytes 解决方法如下: 编辑nginx配置文件,在http中增加如下一条: client_max_body_size 10M; 最好将 keepalive_timeout参数也调大,避免附件过大,网络不好造成的超时。

POST 请求 Nginx 静态页面返回 HTTP 405错误处理

随手记录一下,很少会发生的现象,在个别业务场景下可能会出现 在location里面进行请求类型判断,非GET请求,直接return至相关页面,当然也可以根据来源地址进行返回,这里不再赘述 location / { if ($request_method != GET){ return http://xxx.xxx.xxx; #break; } proxy_pass http://web; }

nginx[warn]:an upstream response is buffered to a temporary 解决

今天早上在查看线上服务器的日志时,发现nginx出现大量如下报错: 2015/07/20 09:56:55 [warn] 15437#0: *39 an upstream response is buffered to a temporary file /var/cache/nginx/proxy_temp/6/00/0000000006 while reading upstream, client: 183.195.233.189, server: www.cmiinv.com, reques ……

Nginx做前端时,后端Apache获得真实IP的方法

因为网站最前端是NGINX,做的PROXY来转发请求到内部的apache上,所以获取的IP都是NGINX PROXY CILLENT IP。 这样很多基于IP判断的PHP程序都会出现一系列的问题,下面说说在Nginx 做前端时让Apache能得到真实IP的做法,只修改NGINX的配置文件NGINX.CONF 在里面加上 proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X- ……

WordPress 屏蔽垃圾评论注入

垃圾评论群发软件一般是通过请求wordpress根目录的wp-comments-post.php来发垃圾评论,只要让垃圾评论群发软件找不到入口,即可轻松屏蔽垃圾评论软件的骚扰,操作如下: 1、找到wordpress网站根目录下的wp-comments-post.php并将其重命名(任意名称)。 2、找到现用主题下comments.php文件中修改action=”/wp-comments-post.php” method=”post” id=commentform”> 代码中 wp-comm ……

修改PHP以post方式上传文件时的大小限制

在PHP的默认配置情况下,当上传的文件大小超出一定的限制时,我们将得到如下的错误提示信息: Warning: POST Content-Length of 625523488 bytes exceeds the limit of 8388608 bytes in Unknown on line 0 上述错误信息的大致意思是,我们使用POST请求提交的数据大小超过了服务器的最大限制数(8388608字节=8MB)。 出现上述错误的原因是,在PHP的配置文件php.ini中,默认存在如下配置信息(在 ……