文章標簽 ‘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。

客戶端到服務器稱之為正向代理,那服務器到客戶端就叫反向代理。

無覓相關文章插件,快速提升流量

30选5怎么中奖