Linux是一个多用户&任务系统。如何防止某些用户占用服务器大量资源,避免影响其他用户的正常使用,是一个永不过时的话题。 很多人采用了国外的Cloudlinux,不过几十元一个月的授权费对于我这样一个学生来说,压力有点大。 前几个星期,我的某个服务器上某个用户被CC了,该用户的HTTPD进程占用了服务器大量资源,最后只能硬重启解决。 从那天开始,如何免费实现限制单用户的资源成为了我的一个迫不及待要解决的问题。 一:获取用户进程以及资源使用信息 Linux下能查看各用户的进程以及资源占用情况的命令有ps和top。其中top是交互式的,不太适合文本处理,因此要选用ps。 ps常用的参数有以 […]
Category: 运营维护
一个高频率的HTTP服务监控Shell Script
Nginx/Apache之类的长期运行,无法保证在遇到各种突发情况进程不会死掉。如果这时候又出门在外,一时间无法操作,那网站岂不是要宕机数个小时? 明显我无法接受这事情。于是一个简简单单的监控HTTP服务的Shell Script就出来了。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
#!/bin/bash #函数restart restart() { #重启Nginx service nginx restart #重启Apache service httpd restart } #循环的开始 while [ "$loop" = "" ] do #延迟五秒 sleep 5 #是否能下载,是则进入下一步循环,否则执行restart wget -O /dev/null http://你的网站地址 -t 1 || restart done |
真的简简单单。 可见我并没有采用cron功能,毕竟这东西正常情况最低频率只能一分钟了。 restart那个function是http服务不正常后执行的,可以自行增添,删减,替换。sleep后面跟着的是秒数,在这里简单理解成监控频率吧。wget处,-t参数指的是尝试次数,这里我写了一次。 执行 […]
Apache:只有访客IP的日志格式
前一篇文章:Nginx日志配合iptables自动封禁IP,提供了一个nginx只有访客IP的日志格式。 这里也顺便提供一个Apache的只有访客IP的日志格式:
1 |
LogFormat "%a" iponly |
把上面的一行代码放到apache的配置文件中去。 然后到站点配置文件中添加:
1 |
CustomLog ${APACHE_LOG_DIR}/iponly.log iponly |
${APACHE_LOG_DIR}改成存放日志的路径。 配合前一篇文章的Shell Script,即可实现防CC。
巧用Nginx的日志功能配合IPTABLES实现防范基础CC攻击(2013年11月24日8:24:13更新)
相信不少人都被CC过,我也不例外,因此一直以来想尽各种办法降低PHP所占的资源。 PHP所耗的资源算压下去了,带宽却满了…… 之前也看过有人使用Nginx的第三方模块limit req2实现防CC攻击,自己也弄过,但效果没想象中的好,只用了几十分钟我就抛弃了…… 昨天其中考试结束后,突然灵机一动,想到一个新的防CC方法。回家后经过多次调试,几经完善,已经基本能正常使用了。 这其中利用了Nginx的日志功能,还有自己写的一个Shell Script。本文出自微宇宙(http://zhensheng.im),转载者死一户口本。 Apache的请移步这里:Apache:只有访客IP的日志格式 首先给 […]
设置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 […]