坚信科学,分享技术

>>>尝试更加利于阅读的2014版科学院,以后都在新版上写。

Tag Archives: nginx

nginx防hashdos模块使用帮助

经过上周一周朋友们帮忙测试和bug fix,nginx_http_hashdos_module已经达到可以线上使用的水平,下面是使用记录。 下载 #wget --no-check-certificate https://github.com/54chen/nginx-http-hashdos-module/zipball/master #mv master nginx_hashdos.zip #unzip nginx_hashdos.zip 编译安装 #tar zxvf nginx-1.0.xx.tar.gz #cd nginx-1.0.xx/ #./configure --prefix=/opt/soft/nginx --with-pcre --user=www --group=www --with-http_stub_status_module --with-http_ssl_module --add-module=../54chen-nginx-http-hashdos-module-f84d909 #make && make install 配置注意事项 在http段,增加如下: hashdos on; body_max_count 1000; 在各自的location段,要按照业务情况来加: client_body_buffer_size 2m; client_max_body_size 2m; …

Continue reading

Posted in WEB相关 | Tagged , | Leave a comment

nginx防hashdos模块释出

2012.1.7 更新 编译的时候推荐使用nginx-1.0以上版本,不要加--with-debug参数编译,(感谢agentzh指出)。 hashdos这个事,严格意义上不是各种语言的错了(不过perl的确处理得很好),但是用nginx来擦屁股要干净些。 借鉴tomcat的作法,实现了下面这个nginx-http-hashdos-module,通过设置hashdos(默认on)的开关和body_max_count(默认值1000),对nginx后面的服务进行安全防护,相比对php或者java进行patch,这或许是最好的办法了。 nginx-http-hashdos-module项目地址 https://github.com/54chen/nginx-http-hashdos-module 如何使用 1.下载zip后保存到一个目录,如~/nginx-http-hashdos-module。 2.cd nginx-1.0.9/ 3.重新编译和安装nginx ./configure --prefix=/opt/soft/nginx --with-pcre --user=www --group=www --with-http_stub_status_module --with-http_ssl_module --add-module=/path_to/nginx-http-hashdos-module/ && make && make install 4.配置打开: hashdos on; body_max_count

Continue reading

Posted in WEB相关 | Tagged , | 11 Comments

[nginx]如何在access log中记录post请求的参数

移动互联网行业开发过程中,服务端经常会需要检查是否收到请求,收到什么样的请求,最简单的办法就是看nginx的access log,常见的nginx配置中access log一般都只有GET请求的参数,而POST请求的参数却不行。 http://wiki.nginx.org/NginxHttpCoreModule#.24request_body $request_body This variable(0.7.58+) contains the body of the request. The significance of this variable appears in locations with directives proxy_pass or fastcgi_pass. 正如上文件所示,只需要使用$request_body即可打出post的数据,在现存的server段加上下面的设置即可: log_format access '$remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent $request_body "$http_referer" "$http_user_agent" $http_x_forwarded_for'; …

Continue reading

Posted in WEB相关 | Tagged , , | 12 Comments

nginx.conf控制指定的代理ip和ip访问的设置手记

工作中有一次用到利用nginx的配置来让只有公司ip的访问才能打开指定的后台url,于是有了下面的记录。 在nginx中if很弱,http://www.nginxcn.com/doc/standard/httprewrite.html,基本上不能写太复杂的条件或者是嵌套。 因为公司我(54chen)网络的设置,过去打到服务器的ip有可能是几个ip,同时也有可能是代理的ip,所以在if判断的时候,可能有多个条件。 location /administrator { #log_format www_54chen_com '$remote_addr - $remote_user [$time_local] $request ' # '"$status" $body_bytes_sent "$http_referer" ' # '"$http_user_agent" "$http_x_forwarded_for"'; # access_log /data/www.log www_54chen_com; set $fuck 0; if ($remote_addr = '1.1.1.1'){ set $fuck 1; } if ($remote_addr = …

Continue reading

Posted in linux | Tagged , | 2 Comments

PHP-FPM配置sendmail支持PHP发信

当下常用的环境CentOS+nginx+php-fpm+mysql. 之前五四陈科学院曾有一文章是介绍环境的配置的,挖一挖水,链接在这里: wordpress nginx php-cgi mysql在128m内存下的vps安装和优化手记[原创] 如果要使用mail功能,需要按如下步骤操作: 第一步、安装sendmail yum install sendmail 第二步、启动sendmail service sendmail start 第三步、设置为auto start chkconfig sendmail on 第四步、修改php-fpm.conf: 搜索sendmail,去掉那一行两头的注释如下: <value name="sendmail_path">/usr/sbin/sendmail -t -i</value> 第五步、php-fpm reload

Continue reading

Posted in linux, php | Tagged , , | Leave a comment

ubuntu 9.10快速安装nginx+php环境手记[54chen科学院]

我(54chen)因为场景需要,特地在ubuntu9.10中安装nginx+php的环境,要快速不要优化,记录如下: sudo apt-get install php5 php5-cgi php5-cli php5-gd php5-curl php5-mysql nginx sudo apt-get install lighttpd spawn-fcgi -a 127.0.0.1 -p 9000 -C 5 -u www-data -g www-data -f /usr/bin/php-cgi 上面的操作解读: 1.安装php nginx 2.安装lighttpd,为啥要安装这个,因为他有个spawn-fcgi,因为apt下来的php不是php-fpm。 3.用spawn-fcgi启动php-cgi在9000端口监听。 sudo vim /etc/php5/cgi/php.ini 修改php.ini文件 cgi.fix_pathinfo=1; 这样php-cgi方能正常使用SCRIPT_FILENAME这个变量 sudo …

Continue reading

Posted in linux, php | Tagged , , | 1 Comment

[五四陈小技巧]全站换域名时利用nginx和javascript做简单友好的换域名跳转通知

在经过上一波的xiaonei.com转renren.com后,昨夜再次迎来新一波的kaixin->renren code的过程,期间有域名要求用新的域名,并且要老域名有跳转有提示,于是采用了下面的办法。 老域名是 old.com 新域名是 new.com 迁移挂维护的过程就略过了,直接说重点, 第一步,修改nginx.conf,删除原来old.com的定义,增加: server { listen 80; server_name old.com; location / { root   /old; if (!-e $request_filename){ rewrite ^/(.*)?$ /index.html?t=$1 last; } } } 第二步,在/old下放进一个index.html,代码如下: <div class="all-error"> <h1><span>old换名啦!</span> <br> 原来old更名为new,请放心不会影响您的使用,新的地址为<a href="http://new.com" id="link">new.c om</a>谢谢您的支持! </h1> <p> …

Continue reading

Posted in 架构研究 | Tagged , , | 2 Comments

How to: redirect WordPress RSS feeds to feedburner with nginx[原创]

[转载请注明:http://www.54chen.com/727-how-to-redirect-wordpress-rss-feeds-to-feedburner-with-nginx-original/ 作者:陈臻] 可能有大多数朋友都会在用wordpress的时候需要从原始的feed地址转到feedburner上,看到一个老外的博客上说了apache的htaccess的修改方案: <IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{HTTP_USER_AGENT} !FeedBurner    [NC] RewriteCond %{HTTP_USER_AGENT} !FeedValidator [NC] RewriteRule ^feed/?([_0-9a-z-]+)?/?$ http://feeds.feedburner.com/-aboutJavaAndPhp [R=302,NC,L] </IfModule> 心想这nginx也不能没个着落下,于是就试验了一下,nginx作如下修改即可: if ($http_user_agent !~ FeedBurner) {   rewrite ^/feed$ http://feeds.feedburner.com/-aboutJavaAndPhp redirect;   rewrite ^/feed/$ http://feeds.feedburner.com/-aboutJavaAndPhp redirect; } 都是302跳,可能对seo不

Continue reading

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

wordpress nginx php-cgi mysql在128m内存下的vps安装和优化手记[原创]

[ 文章作者:陈臻 本文版本:v1.0 最后修改:2009.8.2 转载请注明原文链接:http://www.54chen.com/688-wordpress-nginx-php-cgi-mysql-memory-in-the-128m-to-install-and-optimize-the-vps-notes/ ] 选取CentOS,因为它是号称最安全及性能都相对较好的Linux系统。系统内存128m,系统用掉30m,有100m左右可用(如图1所示),swap已经有256M,硬盘为5G,除去系统后大约有4G可供捣腾。 图1。   首先,在空白的系统上使用下面的命令,安装gcc等一堆工具和后面php会用到的一些包: yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel …

Continue reading

Posted in 架构研究 | Tagged , , , | 37 Comments