nginx设置上传目录无执行权限

[不指定 2010/04/30 08:36 | by admin ]
在windows+iis下,可以设置上传目录,类似:upload,uploadfile,attachments,这样的目录下面无脚本执行权限,从而防止非法用户上传脚本得到webshell
nginx上也很简单,我们使用location。。如下:

location ~ ^/upload/.*\.(php|php5)$
{
deny all;
}

其中upload换为你要设置的目录名字

这条规则的含义是匹配请求连接中开头是/upload/,中间匹配任意字符,结尾匹配.php或者.php5的页面,最后利用deny all禁止访问,这样就防止了上传目录的脚本执行权限
Tags:
nginx的默认虚拟主机在用户通过IP访问,或者通过未设置的域名访问(比如有人把他自己的域名指向了你的ip)的时候生效

最关键的一点事,在server的设置里面添加这一行:
listen       80 default;
后面的default参数表示这个是默认虚拟主机。

这个设置非常有用。
比如别人通过ip或者未知域名访问你的网站的时候,你希望禁止显示任何有效内容,可以给他返回500.
目前国内很多机房都要求网站主关闭空主机头,防止未备案的域名指向过来造成麻烦。就可以这样设置:
server {
listen       80 default;
return 500;
}

如果不用500,也可以把它绑定到一个无法访问的目录,这样也能起到此作用。


也可以把这些流量收集起来,导入到自己的网站,只要做以下跳转设置就可以:
server {
listen       80 default;
rewrite ^(.*) http://www.myip.net permanent;
}
Tags:
通过分析nginx的日志来过滤出访问过于频繁的IP地址,然后添加到nginx的blockip.conf,并重启nginx

脚本如下:

#!/bin/sh
nginx_home = /Data/app_1/nginx
log_path = /Data/logs
/usr/bin/tail -n50000 $log_path/access.log \
|awk ‘$8 ~/aspx/{print $2,$13}’ \
|grep -i -v -E “google|yahoo|baidu|msnbot|FeedSky|sogou” \
|awk ‘{print $1}’|sort|uniq -c |sort -rn \
|awk ‘{if($1>150)print “deny “$2″;”}’> $nginx_home/conf/vhosts/blockip.conf
/bin/kill -HUP `cat $nginx_home/nginx.pid`

也可以通过分析nginx日志过滤出频繁访问IP,直接用iptables屏蔽这个IP,就用不着重启nginx了,并且屏蔽效果更好。

单个IP的命令是
iptables -I INPUT -s 124.115.0.199 -j DROP

封IP段的命令是
iptables -I INPUT -s 124.115.0.0/16 -j DROP

封整个段的命令是
iptables -I INPUT -s 194.42.0.0/8 -j DROP

封几个段的命令是
iptables -I INPUT -s 61.37.80.0/24 -j DROP
iptables -I INPUT -s 61.37.81.0/24 -j DROP

刚才不小心搞的自己都连不上了-_-!!!
iptables -I INPUT -p tcp –dport 80 -s 124.115.0.0/24 -j DROP
以后用这种只封80端口就行了,不会出问题!

iptables -I INPUT -p tcp –dport 80 -s 124.115.0.0/24 -j DROP

iptables -I INPUT -s 61.37.81.0/24 -j DROP

解封
iptables -F
清空
iptables -D INPUT 数字

Tags:

Php-fpm中文说明

[不指定 2010/04/30 08:29 | by admin ]
Php-fpm中文说明
What is FastCGI
From PHP-FPM
Jump to: navigation, search
FastCGI 是一个可伸缩、高速的在web server和脚本语言间通迅的接口。关于FastCGI技术的更多信息可以在官方网站和Wikipedia看到。
FastCGI 被许多脚本语言所支持,包括 php,如果用 --enable-fastcgi 选项编译的话。
多数流行的web server都支持 FastCGI。包括Apache(mod_fastcgi和mod_fcgid),Zeus,nginx和lighttpd。
FastCGI 的主要优点是把动态语言和 web server 分离开来。这种技术允许 web server 和动态语言运行在不同的主机上。这可以改进可扩展性和安全性而没有大的效率损失。
php-fpm 可以和任何支持外部 FastCGI 技术的 web server 一起使用。
Retrieved from "http://php-fpm.org/wiki/CN:What_is_FastCGI"

What is PHP-FPM
From PHP-FPM
Jump to: navigation, search
很不幸,官方网站 php.net 上的 php 在将 FastCGI SAPI 用于生产环境方面有许多已知的问题。
下面是关于启用 FastCGI SAPI 时的问题和 php-fpm 是如何解决他们的对比列表。

描述   php 自带的   spawn-fcgi + spawn-php.sh + daemontools   php-fpm
php 守护进程: pid file, log file, setsid(), setuid(), setgid(), chroot()   (-)   (+)   (+)
进程管理。可以用 "graceful" 来停止并启动 php worker 进程而不会丢失请求。能够平滑地升级配置和二进制程序而不丢失任何请求。   php4 (-), php5 (只有 graceful)   (-)   (+)
严格限制来源请求的 web server 的 ip 地址   php4 (-), php5 (+) (从 5.2.2 开始)   (-)   (+)
根据负载动态调整进程数   (-)   (-)   TODO
用不同的 uid/gid/chroot/environment 和不同的 php.ini 选项启动 worder 进程。你不需要 safe mode 了!   (-)   (-)   (+)
记录业务进程 stdout 和 stderr 日志   (-)   (-)   (+)
如果使用优化器,在共享内存意外破坏的情况下紧急重启所有的进程   (-)   (-)   (+)
如果 set_time_limit() 失败,确保进程会结束   (-)   (-)   (+)
特性
Error header
(+)
支持加速上传
(+)
fastcgi_finish_request()
(+)
SlowLog
(+)


下载地址:
http://php-fpm.org/downloads/

Documentation
From PHP-FPM
Jump to: navigation, search
邮件列表
如果你有问题的话,请不要犹豫在邮件组里写邮件。
•  English: highload-php-en
•  Russian: highload-php-ru
简要说明
php-fpm 已经在 Linux、MacOSX、Solaris 和 FreeBSD 上测试通过。
确信 libxml2(在某些系统上叫做libxml2-devel)已经安装。
下载最小的 php 和 php-fpm
$ bzip2 -cd php-5.2.5.tar.bz2 | tar xf -
$ gzip -cd php-5.2.5-fpm-0.5.7.diff.gz | patch -d php-5.2.5 -p1
$ cd php-5.2.5 && ./configure --enable-fastcgi --enable-fpm
$ make all install
编辑 $prefix/etc/php-fpm.conf
运行 $prefix/bin/php-cgi --fpm
仔细检查 $prefix/logs/php-fpm.log
运行 phpinfo() 检查你的网站是否还正常运行
master 进程的 pid 被存放在 $prefix/logs/php-fpm.pid

master进程可以理解以下信号
SIGINT, SIGTERM   立刻终止
SIGQUIT   平滑终止
SIGUSR1   重新打开日志文件
SIGUSR2   平滑重载所有worker进程并重新载入配置和二进制模块
Retrieved from "http://php-fpm.org/wiki/CN:Documentation"


FAQ
From PHP-FPM
Jump to: navigation, search
Contents
[hide]
•  1 php-fpm 可以和 ZendOptimize 一起用吗?
•  2 php-fpm 可以和 ZendPlatform、xcache、eAccelerator、APC 等的优化器一起用吗?
•  3 为什么我要给 php 打补丁呢?spawn-fcgi 不需要这样!
•  4 为什么要用 root 运行 php-fpm 呢?这安全吗?
•  5 php-fpm 可以加速 php 脚本处理速度吗?
•  6 如果我把我的网站从 mod_php 迁移到 php-fpm ,我会得到性能提升吗?
•  7 php-fpm 将来会被官方的 php 包含吗?

php-fpm 可以和 ZendOptimize 一起用吗?
完全可以。
php-fpm 可以和 ZendPlatform、xcache、eAccelerator、APC 等的优化器一起用吗?
是的。php-fpm 的架构和任何一种用于高速 opcode 缓存的共享内存都适用。唯一的限制是:所有的 worker 进程只能适用一个缓存,即使它们用不同的 uid/gid 运行。
为什么我要给 php 打补丁呢?spawn-fcgi 不需要这样!
php-fpm 的创建是为了增强方便管理。没有打过补丁的 php 不能做到:
•  平滑重启 php 而不丢失请求,包括升级 php 二进制文件 以及/或者 扩展。
•  用不同的 uid / gid / chroot 环境运行 worker 进程
•  所有的设置只有一个配置文件
•  根据负载动态请求 (TODO)
•  对 php 请求实时统计性能 (TODO)
如果你自己不能为PHP打补丁,那么例如spawn-fcgi之类的其他工具更适合你,尽管它仅仅有有限的可选功能;如果你需要多个FastCGI池,还需要定制脚本。
为什么要用 root 运行 php-fpm 呢?这安全吗?
用 root 权限启动 php-fpm 只有在你打算用不同 uid/gid 的 php 来处理请求时才有意义。比如,在共享主机上的不同站点。因为只有在 master 进程用 root 运行的时候,才可以建立不同 uid/gid 的子进程。这是相当安全的。master 进程自己从来不会去处理请求。在任何情况下,php-fpm 都不会用 root 身份来处理请求。

php-fpm 可以加速 php 脚本处理速度吗?
不,它不会影响处理速度。不过,如果你使用一些特殊特性,对于一些特定的请求还是可以有性能提升的。

如果我把我的网站从 mod_php 迁移到 php-fpm ,我会得到性能提升吗?
通常,当有服务器上有大量空闲内存可用时,能从迁移到 php-fpm 中得到的性能提升可能不大。但是如果内存并不充裕,性能提升还是很可观的,在某些情况下可以达到 300-500%。这可能是由于 nginx + php-fpm 一般会比 Apache + mod_php 使用更少的内存。而且 VFS 缓存会由于更多的空余内存而更有效地工作。

php-fpm 将来会被官方的 php 包含吗?
我希望如此。目前,php-fpm 代码的协议是 GPL 。所以现在 php-fpm 的代码与 php 协议(类似 bsd)并不匹配。这是临时性措施。这样的选择是为了简化开发过程。一旦代码的功能完备,比如自适应生成子进程和其他一些东西,协议会改为一个相匹配的。之后,php-fpm 会正式发布给 php 开发团队,并被建议包含。 现在许可证已经修改成类BSD的许可证。这意味着它能包含到PHP或者PECL。我们已经接触了PHP小组和PECL小组,努力尝试把它包含或部分包含进PHP核心(并且可能进程管理部分有hooks和程序存在于PHP核心之外,这样它就能更快,并且独立于PHP各版本)
Retrieved from "http://php-fpm.org/wiki/CN:FAQ"
About
From PHP-FPM
Jump to: navigation, search
嗨,我的名字叫 Andrei Nigmatulin, 我是 php-fpm 的作者。
从 2004 年开始,我就在等有什么人让 PHP FastCGI 能满足产品环境,但我等不下去了。
php-fpm 是在数个项目种使用 PHP 的 FastCGI SAPI 中的知识、经验和想法的产物。
php-fpm 可以在 GPL 协议下用在公共用途。和 php-fpm 绑定的修改版的 libevent 是在 BSD 协议下发布的。
我需要得到您的反馈——新的想法和建议——来改进和优化 php FastCGI SAPI。 如果您有什么想法、意见、补充和建议,我会很高兴,很原意听取,也许还会实现他们。给给我发邮件吧。(地址在本页的末尾)。
如果你想支持 php-fpm 的开发,可以作一些捐赠: Paypal Yandex.Money

本文内容来自于:wiki
http://php-fpm.org/wiki/CN:Home
Tags:
分页: 1/2 第一页 1 2 下页 最后页 [ 显示模式: 摘要 | 列表 ]