存档

2012年12月 的存档

nginx 400 bad request errors

2012年12月26日 3 条评论

有人问我为什么nginx的access日志文件突然间变大M,查看结果nginx默认主机日志记录出现如下的400错误。   重现办法: telnet localhost 80 Trying ::1... telnet: connect to address ::1: Connection refused Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. GET / HTTP/1.1 HTTP/1.1 400 Bad Request Server: nginx/1.2.5 Date: Wed, 26 Dec 2012 03:37:08 GMT Content-Type: text/html Content-Length: 172 Connection: close <html> <head><title>400 Bad Request</title>&...

分类: nginx 标签:

nginx配置入门

2012年12月24日 12 条评论

之前的nginx配置是对nginx配置文件的具体含义进行讲解,不过对于nginx的新手可能一头雾水。 今天看到个文档不错,翻译过来分享给大家,可以让新手更详细地了解nginx配置,可以说是nginx配置入门必备。 Nginx是一个轻量级高性能的web服务器,它是为快速响应大量静态文件请求和高效利用系统资源而设计的。与apache使用面向进程或线程的方式处理请求不同,nginx使用异步事件驱动模型在负载下性能更突出。 虽然nginx能高效地服务静态文件,但也有人认为nginx处理动态内容并不理想。不像apache服务器,nginx没用使用内嵌解释器的方式来处理...

分类: nginx 标签: , , ,

nginx File not found 错误

2012年12月21日 24 条评论

使用php-fpm解析PHP,"No input file specified","File not found"是令nginx新手头疼的常见错误,原因是php-fpm进程找不到SCRIPT_FILENAME配置的要执行的.php文件,php-fpm返回给nginx的默认404错误提示。 比如我的网站doucument_root下没有test.php,访问这个文件时通过抓包可以看到返回的内容。 HTTP/1.1 404 Not Found Date: Fri, 21 Dec 2012 08:15:28 GMT Content-Type: text/html Proxy-Connection: close Server: nginx/1.2.5 X-Powered-By: PHP/5.4.7 Via: 1.1 c3300 (NetCache NetApp/6.0.7) Content-Length: 16 File not fo...

分类: nginx 标签:

nginx "403 Forbidden" 错误

2012年12月17日 1 条评论

nginx 的 403 Forbidden errors 表示你在请求一个资源文件但是nginx不允许你查看。 403 Forbidden 只是一个HTTP状态码,像404,200一样不是技术上的错误。 哪些场景需要返回403状态码的场景? 1.网站禁止特定的用户访问所有内容,例:网站屏蔽某个ip访问。 2.访问禁止目录浏览的目录,例:设置autoindex off后访问目录。 3.用户访问只能被内网访问的文件。 以上几种常见的需要返回 403 Forbidden 的场景。 由于服务器端的错误配置导致在不希望nginx返回403时返回403 Forbidden。 1.权限配置不正确 这个是nginx出现403 forbidden最常见...

分类: nginx 标签: , ,

nginx隐藏版本号version

2012年12月14日 没有评论

nginx的版本号默认是打开的,可以在默认的错误页面和http响应头中查看到。 比如http://blog.redis.com.cn的HTTP响应头信息 有些时候HTTP/1.1 200 OK Server: nginx/1.2.3 Date: Fri, 14 Dec 2012 05:39:29 GMT Content-Type: text/html; charset=UTF-8 Connection: keep-alive Vary: Accept-Encoding X-Powered-By: PHP/5.4.7 X-Pingback: http://blog.redis.com.cn/xmlrpc.php Content-Encoding: gzip 不同版本,特别是低版本的nginx可能存在漏洞,就不希望能被人轻易获取到系统版本号。 这个时候我们可以显示的隐藏nginx version,使...

分类: nginx 标签:

nginx做代理上网

2012年12月13日 7 条评论

nginx不仅可以来做反向代理,也可以用来做正向代理(透明代理,代理上网),nginx反向代理看这里 反向代理,外部机器通过网关访问网关后面服务器上的内容,网关起到了反向代理的功能,我们平时通过浏览器访问远程的web服务器大都是这样实现的。 正向代理,就是上面的过程反过来,我们平时说的代理上网,局域网中的用户通过网关做代理访问外部的网络。 nginx同样可以实现代理上网的功能,配置如下: user www; worker_processes 1; error_log /var/log/nginx/error.log debug; events { use epoll; wor...

nginx限制某个IP同一时间段的访问次数

2012年12月10日 4 条评论

如何设置能限制某个IP某一时间段的访问次数是一个让人头疼的问题,特别面对恶意的ddos攻击的时候。其中CC攻击(Challenge Collapsar)是DDOS(分布式拒绝服务)的一种,也是一种常见的网站攻击方法,攻击者通过代理服务器或者肉鸡向向受害主机不停地发大量数据包,造成对方服务器资源耗尽,一直到宕机崩溃。 cc攻击一般就是使用有限的ip数对服务器频繁发送数据来达到攻击的目的,nginx可以通过HttpLimitReqModul和HttpLimitZoneModule配置来限制ip在同一时间段的访问次数来防cc攻击。 HttpLimitReqModul用来限制连单位时间内连接数的模...

nginx下支持PATH_INFO详解

2012年12月7日 6 条评论

要想让nginx支持PATH_INFO,首先需要知道什么是pathinfo,为什么要用pathinfo? pathinfo不是nginx的功能,pathinfo是php的功能。 php中有两个pathinfo,一个是环境变量$_SERVER['PATH_INFO'];另一个是pathinfo函数,pathinfo() 函数以数组的形式返回文件路径的信息;。 nginx能做的只是对$_SERVER['PATH_INFO]值的设置。 下面我们举例说明比较直观。先说php中两种pathinfo的作用,再说如何让nginx支持pathinfo。 php中的两个pathinfo php中的pathinfo() pathinfo()函数可以对输入的路径进行判断,以数组的形式返回文件路径的信息,数...

分类: nginx 标签: ,

使用nginx的proxy_cache做网站缓存

2012年12月5日 19 条评论

为什么要做web cache,我想大家最主要的是解决流量的压力。随着网站流量的提升,如果只是单台机器既处理静态文件,又处理动态脚本,显然效率很难上升,不能处理日益上涨的流量压力。与此同时某些网站的页面内容并不是经常变化,因此我们可以分两层架构来组织网站。前端web缓存+后端web服务器,可以参看这里配置nginx反向代理配置 前端web缓存有多重方式实现,原理就是队请求结果页面静态化并设置一个超时期限,缓存页面过期后,新请求到达时重新到后端web服务器获取内容更新;没有nginx前比较流行的方法是squid,但squid不能充分利用处...

分类: nginx 标签: , ,

使用ab对nginx进行压力测试

2012年12月4日 3 条评论

nginx以高并发,省内存著称。 相信大多数安装nginx的同学都想知道自己的nginx性能如何。 我想跟大家分享下我使用ab工具的压力测试方法和结果, ab是针对apache的性能测试工具,可以只安装ab工具。 ubuntu安装ab apt-get install apache2-utils 1 apt-get install apache2-utils centos安装ab yum install httpd-tools 1 yum install httpd-tools ...

分类: nginx 标签: , , ,