Category Archives: Nginx

在Nginx上利用rewrite重定向url

当网站的目录必须改变的时候,如何将原来目录的流量导入新的地址,并友好的对待SEO始终是个问题。 而Nginx的rewrite,利用简单的规则,就可以将:www.abc.com/bbs的url导入到bbs.abc.com。 具体的规则,是在conf配置文件上增加: rewrite ^/bbs/(.*) http://bbs.abc.com/$1; 这样,整个bbs的文件,便可自动转向到bbs.abc.com了。 然后重启nginx即可。

Posted in Nginx | Tagged , , | Leave a comment

Nginx的热启动

用过Nginx的都知道,热重启是个很重要的功能,如果你没有使用init的启动脚本来控制Nginx的启动,那么就必须通过手动方式来热重启 Nginx了,这里提供一种简单的方法。 首先找到Nginx的pid, sudo ps -ef|grep nginx root      3909 13650  0 00:35 pts/0    00:00:00 grep nginx root      5875     1  0 Mar28 ?        00:00:00 nginx: master process /usr/local/nginx/sbin/nginx nobody    5877 … Continue reading

Posted in Nginx | Tagged , | Leave a comment

再提供一种解决Nginx文件类型错误解析漏洞的方法

[文章作者:张宴 本文版本:v1.2 最后修改:2010.05.24 转载请注明原文链接:http://blog.s135.com/nginx_0day/] 注:2010年5月23日14:00前阅读本文的朋友,请按目前v1.1版本的最新配置进行设置。 昨日,80Sec 爆出Nginx具有严重的0day漏洞,详见《Nginx文件类型错误解析漏洞》。只要用户 拥有上传图片权限的Nginx+PHP服务器,就有被入侵的可能。 其实此漏洞并不是Nginx的漏洞,而是PHP PATH_INFO的漏洞,详见:http://bugs.php.net/bug.php?id=50852&edit=1 例如用户上传了一张照片,访问地址为http://www.domain.com/images/test.jpg, 而test.jpg文件内的内容实际上是PHP代码时,通过http://www.domain.com/images/test.jpg/abc.php就 能够执行该文件内的PHP代码。 网上提供的临时解决方法有: 方法①、修改php.ini,设置 cgi.fix_pathinfo = 0;然后重启php-cgi。此修改会影响到使用PATH_INFO伪静态的应用,例如我以前博文的URL:http://blog.s135.com/read.php/348.htm 就不能访问了。 方法②、在nginx的配置文件添加如下内容后重启:if ( $fastcgi_script_name ~ \..*\/.*php ) {return 403;}。该匹配会影响类似 http://www.domain.com/software/5.0/test.php(5.0 为目录),http://www.domain.com/goto.php/phpwind 的URL访问。 方法③、对于存储图片的location{…},或虚拟主机server{…},只允许纯静态访问,不配置 PHP访问。例如在金山逍遥网论坛、SNS上传的图片、附件,会传送到专门的图片、附件存储服务器集群上(pic.xoyo.com),这组服务器提供纯 静态服务,无任何动态PHP配置。各大网站几乎全部进行了图片服务器分离,因此Nginx的此次漏洞对大型网站影响不大。 本人再提供一种修改nginx.conf配置文件的临时解决方法,兼容“http://blog.s135.com/demo/0day/phpinfo.php/test” 的PATH_INFO伪静态,拒绝“http://blog.s135.com/demo/0day/phpinfo.jpg/test.php” 的漏洞攻击: location ~* .*\.php($|/) { … Continue reading

Posted in Nginx | Tagged , | Leave a comment

简单为Nginx增加启动/重启脚本

第一步先运行命令关闭nginx sudo kill `cat /usr/local/nginx/logs/nginx.pid` 第二步 vi /etc/init.d/nginx 输入以下内容 #!/bin/sh## nginx – this script starts and stops the nginx daemin## chkconfig:   - 85 15 # description:  Nginx is an HTTP(S) server, HTTP(S) reverse \#              … Continue reading

Posted in Nginx | Tagged , , , | Leave a comment

通过Nginx使全站页面变灰,哀悼玉树地震遇难者

引用 新华网北京4月20日电 国务院决定,为表达全国各族人民对青海玉树地震遇难同胞的深切哀悼,2010年4月21日举行全国哀悼活动,全国和驻外使领馆下半旗志哀,停止公共娱乐活动。 4月21日全国哀悼日,将去除网站全站所有站点色彩(变灰),悼念遇难同胞,愿死者安息。 金山逍遥网旗下站点众多,虽然官网都有统一的页头、页尾,但是,还有一部分站点(例如用户中心、注册充值页面、游戏客户端内嵌网站、活动专题页等)页头、页尾不相同。但是,所有站点采用的都是Nginx服务器,95%以上的站点都经过Nginx负载均衡服务器,因此只需要在Nginx负载均衡服务器上,利用sub_filter指令在输出的HTML中增加一行: <style type=”text/css”>html {filter:progid:DXImageTransform.Microsoft.BasicImage(grayscale=1); }</style> 就可以实现在IE及IE内核浏览器下,所有网站变灰色。步骤如下: 1、重新编译Nginx,增加http_sub_module模块: wget http://nginx.org/download/nginx-0.8.35.tar.gz tar zxvf nginx-0.8.35.tar.gz cd nginx-0.8.35 ./configure –user=www –group=www –prefix=/usr/local/webserver/nginx –with-http_stub_status_module –with-http_ssl_module –with-http_sub_module make && make install pkill -9 nginx /usr/local/webserver/nginx/sbin/nginx 2、在nginx.conf配置文件的http {…}大括号内增加以下两行: sub_filter  ’</head>’  ’<style type=”text/css”>html {filter:progid:DXImageTransform.Microsoft.BasicImage(grayscale=1); … Continue reading

Posted in Nginx | Tagged , | Leave a comment