apache 403 错误 client denied by server

由于前段时间给一台服务器在前加了个 nginx 做代理,今天大量用户反应网站出现 403 服务器日志显示 client denied by server 看一下访问日志都是 127.0.0.1 这才想起应该是 apache 防 ddos 模块的问题,把每个 vhost 的链接都当做 一个链接了,先去掉 mod_evasive ,恢复正常,为了上 apache 得到真实 ip 要安装 mod_rpaf 这个模块就 OK 了,

cd /usr/ports/www/mod_rpaf
make install clean

安装模块, freebsd 就是让人偷懒呀。编译完成 修改 httpd.conf
打开 mod_rpaf 模块 ,去掉 mod_rpaf 的 # 号, 添加

RPAFenable On
RPAFsethostname On
RPAFproxy_ips 127.0.0.1
RPAFheader X-Forwarded-For

 

重起 apache ,终于一切正常了,收工回家.

关于Nginx+PHP fastcgi 胜过Apache十倍 自己验证

记得自己每一次知道nginx 还是在 群里讨论张老师的文章

他的最新文章
Nginx 0.7.x + PHP 5.2.8(FastCGI)搭建胜过Apache十倍的Web服务器(第4版)[原创]
http://blog.s135.com/post/366/

我自己是在 freebsd 7.0服务器上
硬件配置

Intel(R) Xeon(R) CPU E5410 @ 2.33GHz *2
内存 4G
sas 146 * 2 raid1
基本和张老师的配置差不多,

nginx 配置

user  www www;
worker_processes  8;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


worker_rlimit_nofile 200000;
events {
    worker_connections  200000;
    #use kqueue;
}

php-cgi 开启 128 进程

实际结果, nginx 也许处理静态页面可以达到3W并发,但是如是果php 得估计不行,我自己用 webbench 开起1W连接,本机差点没死,但此时 php页面打开已经相当的慢了,但status 速度仍然很快,说明nginx 的承载能力确实很强,但php处理这块依然是最大的瓶颈,此文只是本人自己测试,也许是本本配置系统有问题,导致达不到3W并发!

php + xapian extension的安装

xapian是啥玩意?

xapian 是一个“Xapian 是一个开源概率论信息检索库,基于GPL发布。它是用C++编写的,提供的绑定可以支持其它语言(支持Perl, Python, PHP, Java, and TCL )的开发。 Xapian 设计为一个高度可适应的工具集,可以让开发人员方便地为他们自己的应用程序增加高级索引和搜索功能。”

在网上找到这段介绍后,俺手痒痒就想试试xapian —- 一定要给php整个这东东上去.参考了若干文档以后,这就开始动手了(我的环境仍然是freebsd + apache 2.2 + php 5.1.2,apache和php原来就已经安装好):

1.下载xapian

cd /usr/local/src
wget http://www.oligarchy.co.uk/xapian/0.9.4/xapian-core-0.9.4.tar.gz
wget http://www.oligarchy.co.uk/xapian/0.9.4/xapian-bindings-0.9.4.tar.gz

前者是xapian的核心lib代码,后者是给其它语言调用的接口

2.安装Xapian-core

cd /usr/local/src
tar xzvf xapian-core-0.9.4.tar.gz
cd xapian-core-0.9.4
./configure –prefix=/usr/local/xapian
make
make install

3.安装Xapian-bindings

cd /usr/local/src
tar xzvf xapian-bindings-0.9.4.tar.gz
cd xapian-bindings-0.9.4
ln -s /usr/local/xapian/bin/xapian-config /usr/local/bin/xapian-config #这里需要做个软连接,编译的时候需要用到
./configure –without-python #我没用到python,就不编译了
make
make install

进行到这一步,Xapian-bindings应该算是安装好了,但是不知道为何,编译好的xapian.so没有按说明文档所说的自动复制到php的extension目录,于是我手工完成这一步骤

cp php/.libs/xapian.so /usr/local/lib/php #/usr/local/lib/php是我在php.ini设置的extension目录

然后修改php.ini
extension_dir = “/usr/local/lib/php/” #没有就加上
extension=xapian.so

安装全部完成,重启apache看看phpinfo:

一切ok:)

来自:http://www.ooso.net/index.php/archives/174

apache mod_limitipconn 的配置方法

在你的apache的conf文件里面加入

LoadModule limitipconn_module lib/apache/mod_limitipconn.so

ExtendedStatus On

下面就是apache mod_limitipconn的配置了

有两种基本配置,第一种是对整个服务器进行配置,第二种是对单个虚拟主机进行配置,区别就是配置参数是否放在VirtualHost里面。

MaxConnPerIP 3 后面的3代表最多允许单个ip同时3个请求

NoIPLimit image/* 代表image目录不进行ip限制

OnlyIPLimit audio/mpeg video 代表只限制音频视频文件


    
	MaxConnPerIP 3
	NoIPLimit image/*
    

    
	MaxConnPerIP 1
	OnlyIPLimit audio/mpeg video
    


上面的第一段代表在用户访问/somewhere目录时,最多允许单ip3个连接,但是image目录下的文件不进行计数。

上面的第二断代表用户在访问/mp3目录时,最多允许单ip1个链接,仅仅对audio/mpeg video类型的文件访问时进行限制

当然了最简单的就是这样了


    
        MaxConnPerIP 2