文章标签 ‘apache’

使用apache ab做压力测试时出现apr_poll:The timeout specified has expired错误

2012年2月13日 没有评论

使用apache 的ab做压力测试时,当压力过大,例如请求1000000次,在没有执行完就报apr_poll:The timeout specified has expired错误,解决办法,使用-k(发送keep-alive指令到服务器端),同时修改web服务器下的/etc/sysctl.conf,在里面添加如下内容:

net.ipv4.netfilter.ip_conntrack_max = 3276800
net.ipv4.tcp_tw_recycle = 0
net.ipv4.tcp_tw_reuse = 0
net.ipv4.tcp_orphan_retries = 1
net.ipv4.tcp_fin_timeout = 25
net.ipv4.tcp_max_orphans = 8192
net.ipv4.ip_local_port_range = 32768    61000

如果已经存在,试着加大net.ipv4.netfilter.ip_conntrack_max的值,然后使用

sysctl -p /etc/sysctl.conf

使其生效。

分类: Linux 标签: , ,

centos下搭建apache+svn服务器

2011年8月31日 没有评论

本文将详细介绍centos5如何搭建svn服务器。包括apache,subversion的安装和一些简单的配置。

  • 安装Apache HTTP Server

apache下载地址:http://www.apache.org/dist//httpd/httpd-2.2.20.tar.gz

通过tar -zxvf httpd-2.2.20.tar.gz 解压,进入解压后的文件夹,执行

./configure --enable-dav --enable-so --prefix=/usr/local/apache2

其中,–enable-dav允许Apache提供DAV协议支持;–enable-so允许运行时加载DSO模块,前两个参数是必须要加的,–prefix 是安装的位置。如果configure通过,接着执行

make && make install

数分钟后就完事了,通过 /usr/local/apache2/bin/apachectl -k start 来启动,在浏览器中访问127.0.0.1,如果出现 It’s Works!,那么说明安装成功。

  • 安装Subversion
  • Subversion
Subversion需要需要下载两个文件subversion-1.6.17.tar.bz2和subversion-deps-1.6.17.tar.bz2,它们的下载地址是
http://subversion.tigris.org/downloads/subversion-1.6.17.tar.bz2
http://subversion.tigris.org/downloads/subversion-deps-1.6.17.tar.bz2

分别解压subversion-1.6.17.tar.bz2和subversion-deps-1.6.17.tar.bz2,解压后他们都在subversion-1.6.17这个文件夹下,然后执行configure,命令如下

./configure --with-apxs=/opt/apache2/bin/apxs --with-apr=/usr/local/apache2 --with-apr-util=/usr/local/apache2 --prefix=/usr/local/subversion-1.6.7

其中,–with-apxs 用于生成apache httpd的mod_dav_svn和mod_authz_svn模块;–with-apr 和 –with-apr-util=参数指向 Apache 的安装根目录,而不是使用缺省的 SVN 安装包中自带的 apr ,否则如果你安装的 Apache 版本不同有可能导致 APR 库不匹配,出现类似 Can’t set position pointer in file ‘/svn/test/db/revs/1′: Invalid argument 的错误,–prefix 是安装的位置。中间可能会出现某些库找不到的情况,根据提示用yum来搞定。configure成功后,执行编译和安装,即

make && make install

如果没有报错,svn就成功安装好了。对于版本1.8+,可能需要通过如下命令把对应 so 文件 copy 到apache 目录。

cp subversion/mod_authz_svn/.libs/mod_authz_svn.so /usr/local/apache/modules/
cp subversion/mod_dav_svn/.libs/mod_dav_svn.so /usr/local/apache/modules/
  • 如何创建的Subversion的版本库

假设我们把版本库建立在/opt/svnroot 目录下,那么在/opt/svnroot目录下执行mkdir repository新建版本库文件夹,通过svnadmin create repository/test命令可创建名为test的版本库。若创建成功,则subversion的安装便已成功完成。使用mkdir -p import/{trunk,branches,tags} 命令在/opt/svnroot目录下建立一个名为import的新文件夹,包含trunk、branches、tags 三个子目录。下面这条语句将把路径/opt/svnroot/import下的目录和文件导入到你创建的Subversion 仓库中去,提交后的修订版为1。

svn import /opt/svnroot/import file:///opt/svnroot/repository/test -m "Init repository"

这里/opt/svnroot/import可以使用相对路径,但file:///opt/svnroot/repository/test必须以绝对路径表示。

分类: Linux 标签: , , ,

apache配置中ProxyPassReverse指令的含义

2011年8月27日 没有评论

apache中的mod_proxy模块主要作用就是进行url的转发,即具有代理的功能。应用此功能,可以很方便的实现同tomcat等应用服务器的整合,甚者可以很方便的实现web集群的功能。

例如使用apache作为域名www.test.com代理服务器,让其暴露在公网上,即DNS解析到本机器上,真正提供web服务器的是另一台位于同一内网的机器上,假设起IP是192.168.100.22,那么只需要如下配置就可以了。

ProxyPass / http://192.168.100.22/

ProxyPassReverse / http://192.168.100.22/

ProxyPass 很好理解,就是把所有来自客户端对http://www.test.com的请求转发给http://192.168.100.22上进行处理,ProxyPassReverse 的配置总是和ProxyPass 一致,但用途很让人费解。似乎去掉它很能很好的工作,事实真的是这样么,其实不然,如果响应中有302重定向,ProxyPassReverse就派上用场。举例说明,假设用户访问http://www.test.com/exam.php,通过转发交给http://192.168.100.22/exam.php处理,假定exam.php处理的结果是实现redirect到login.php(使用相对路径,即省略了域名信息),如果没有配置反向代理,客户端收到的请求响应是重定向操作,并且重定向目的url为http://192.168.100.22/login.php ,而这个地址只是代理服务器能访问到的,可想而知,客户端肯定是打不开的,反之如果配置了反向代理,则会在转交HTTP重定向应答到客户端之前调整它为http://www.test.com/login.php,即是在原请求之后追加上了redirect的路径。当客户端再次请求http://www.test.com/login.php,代理服务器再次工作把其转发到http://192.168.100.22/login.php。

客户端到服务器称之为正向代理,那服务器到客户端就叫反向代理。

无觅相关文章插件,快速提升流量