标签:nginx

默认分类

Nginx下简单实现MediaWIKI的伪静态

最近要写一个说明文档,于是就用上了MediaWIKI。 这东西默认情况下,文章地址格式为http://domain/index.php?title=标题。 如果要改成使用http://domain/标题 的方式访问,rewrite规则明显有点繁琐,除非使用 if -e判断文件是否存在,否则正则表达式的.*会把一切东西,包括静态资源也匹配进去。 想了想,于是决定把文章的地址都变成子目录的形式:http://domain/wiki/标题,这样的话伪rewrite规则就变得简单多了,对/wiki进行匹配即可,仅需一行代码:

然后修改M […]

Read more 4 Comments
服务器, 未分类, 运营维护

一个高频率的HTTP服务监控Shell Script

Nginx/Apache之类的长期运行,无法保证在遇到各种突发情况进程不会死掉。如果这时候又出门在外,一时间无法操作,那网站岂不是要宕机数个小时? 明显我无法接受这事情。于是一个简简单单的监控HTTP服务的Shell Script就出来了。

真的简简单单。 可见我并没有采用cron功能,毕竟这东西正常情况最低频率只能一分钟了。 restart那个function是http服务不正常后执行的,可以自行增添,删减,替换。sleep后面跟着的是秒数,在这里简单理解成监控频率吧。wget处,-t参数指的是尝试次数,这里我写了一次。 执行 […]

Read more 4 Comments
服务器, 未分类, 运营维护

巧用Nginx的日志功能配合IPTABLES实现防范基础CC攻击(2013年11月24日8:24:13更新)

Log File

相信不少人都被CC过,我也不例外,因此一直以来想尽各种办法降低PHP所占的资源。 PHP所耗的资源算压下去了,带宽却满了…… 之前也看过有人使用Nginx的第三方模块limit req2实现防CC攻击,自己也弄过,但效果没想象中的好,只用了几十分钟我就抛弃了…… 昨天其中考试结束后,突然灵机一动,想到一个新的防CC方法。回家后经过多次调试,几经完善,已经基本能正常使用了。 这其中利用了Nginx的日志功能,还有自己写的一个Shell Script。本文出自微宇宙(http://zhensheng.im),转载者死一户口本。 Apache的请移步这里:Apache:只有访客IP的日志格式 首先给 […]

Read more 14 Comments
服务器, 运营维护

设置ACL增强网站目录安全性

Linux的安全性高是人人皆知的,可以分别设置user,group,other的r/w/x的权限。 但是,对于我这种注重数据安全的人来说,这样简单的权限设置已无法满足我的需求。 就以Nginx+PHP-FPM的环境为例。一般给Nginx和php-fpm fork出来的进程的用户身份不同的。 假如给Nginx的执行身份是用户nginx,而php-fpm的执行身份是php-fpm。 在网站所有文件owner都是php-fpm的情况下,给网站目录的文件的最低权限就是505(user:r_x,group:___,other:r_x)(不能再低了,再低就无法正常访问了)。本文出自微宇宙(http://z […]

Read more 4 Comments
服务器, 运营维护

多重代理时如何防止伪造X-Forwarded-For且获取真实IP

127.0.0.1

当我们给网站使用例如CDN,Nginx或Varnish等缓存服务时,为了获取访客的真实IP,大多数会地把访客的真实IP赋值给X-Forwarded-For(下文简称XFF)。 但是因为XFF是个HTTP请求头,也就是最前面带有http_,因此这类http信息就可以被伪造。     其实根据实际使用情况判断是否需要获取XFF内容就不会出现这些问题。 拿Nginx的反代理(Proxy模块)功能来说,有人会把$proxy_add_x_forwarded_for变量的内容传给后端作为用户的真实IP。 Nginx对该变量的处理非常智能,当有XFF传过来时,Nginx就会自动把Ngin […]

Read more 22 Comments