判断apache的工作模式是prefork模式还是worker模式

Posted by zuzhihui in apache on 2012/10/10 with No Comments

apache常用的工作模式有prefork和worker模式。运行命令httpd -l 或者apache2 -l ,输出的结果中如果含有prefork.c,那就是prefork模式,如果结果中含有worker.c,那就是worker模式。

配置Debian VPS的apache限制同一个IP的连接数

Posted by zuzhihui in apache on 2009/05/06 with No Comments

缺省情况下,Apache并不限制同一个IP过来的连接数量。在实际情况中,经常会碰到同一个IP过来的连接数特别多,影响服务器的性能。为了避免这种情况,可以给apache配置一个这样的模块就可以了,本文介绍在Debian VPS下怎样实现这个过程。

这个模块不是apache官方的,而是第三方的,他们的主页是http://dominia.org/djao/limitipconn2.html。首先到这里下载源码。

在Debian VPS下安装编译工具:

apt-get install make gcc apache2-prefork-dev

解开源码包,修改Makefile,把里面的apxs修改成apxs2,然后运行:

make
make install

在http.conf中加入

ExtendedStatus On
 < IfModule mod_limitipconn.c >
      < Location / > # 所有虚拟主机的/目录
      MaxConnPerIP 3         # 每IP只允许3个并发连接
      < /Location >
  < /IfModule >

重启apache

用迅雷下载你的网站上的一个东西,会发现迅雷默认打开的5个线程,可以成功和你的web站点建立连接的数量,不会超过你所设置的并发连接数值

Apache/PHP的内存优化

Posted by zuzhihui in apache on 2008/07/24 with No Comments

经常有客户在96M/128M内存的VPS上安装LAMP应用,碰到内存不足,然后系统把mysql进程杀死的情况。这种现象的根本原因是内存不足了。而大部分内存是被apache占用了的,VPS上的apache又是系统的默认配置,所以比较占内存。
关于优化apache的内存,轻参考如下文章:

  1. http://fwolfcn.blogspot.com/2008/03/mediatemple.html
  2. http://www.im286.com/thread-2353918-1-1.html

另外对mysql,可以修改my.cnf,启用skip-innodb,因为我们用myisam就足够了!

在96M内存的VPS上跑高性能的LAMP应用WordPress

Posted by zuzhihui in apache on 2008/06/01 with No Comments

通常情况下,在一个96M内存的VPS上安装apache2,mysql,php5之后再安装一个wordpress,那么apache在相应三五的连接请求之后,VPS的内存就几乎快要用完了,这时候如果连接请求不断增加,VPS将会内存耗尽,内存耗尽之后,无论有没有swap,CPU的占有率就会很高。我们RasHost VPS已经有很多客户都碰到过这种情况。实践证明,96M内存的VPS使用Apache跑PHP的应用不能支持大的并发。主要原因就是apache mod_php的内存占用比较高。

为了解决这个问题,我们采用了Nginx FastCGI PHP MySQL的方案。Nginx是Web Server的后起之秀,性能比Apache高出不少。实践证明Nginx FastCGI PHP MySQL比Apache PHP要节省资源!

在Linux VPS下配置Nginx FastCGI PHP MySQL需要如下几个步骤:

  1. 配置nginx fastcgi php mysql的环境
  2. 安装wordpress
  3. 配置nginx URL rewrite用以支持wordpress的永久链接。

对于第一步,请参考我们以前的博客:

  1. 在Ubuntu 8.04 LTS(hardy)下安装配置nginx和fastcgi方式的php
  2. 在CentOS5下安装配置nginx fastcgi php mysql

对于第二步,安装wordpress跟在apache下一样,不再罗嗦了。安装完wordpress后就可以正常使用了,如果想要启用wordpress的不带问号方式的永久链接,则需要进行第三步。

第三步,我配置的永久链接是这个形式:/index.php/%year%/%monthnum%/

配置Apache虚拟主机

Posted by zuzhihui in apache on 2008/05/24 with No Comments

在安装了 CentOS 5.1的 瑞豪开源Xen VPS 下简单配置Apache的虚拟主机的过程如下:

安装apache,php:
yum install httpd php

假设VPS的IP是58.130.17.168,有两个域名指向该IP,分别是domain1.com, domain2.com,

修改/etc/httpd/conf/httpd.conf,在文件的最后加入:

ServerName 58.130.17.168
NameVirtualHost 58.130.17.168

<VirtualHost 58.130.17.168>
ServerName domain1.com
DocumentRoot /var/www/domain1.com
<Directory “/var/www/domain1.com”>
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
</VirtualHost>

<VirtualHost 58.130.17.168>
ServerName domain2.com
DocumentRoot /var/www/domain2.com
<Directory “/var/www/domain2.com”>
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
</VirtualHost>

然后在/var/www/domain1.com和/var/www/domain2.com下创建不同的index.html文件:
echo “domain1″>/var/www/domain1.com/index.html
echo “domain2″>/var/www/domain2.com/index.html

在浏览器里输入http://domain1.com和http://domain2.com即可看到效果了

三分钟整合Apache和Tomcat

Posted by zuzhihui in apache on 2008/05/24 with No Comments

在Ubuntu或者Debian下整合Apache和Tomcat非常方便

安装

安装Apache,JDK,Tomcat的过程很简单,一个命令搞定:

在Deiban下:

apt-get install apache2-mpm-worker sun-java6-jdk tomcat5.5-webapps libapache2-mod-jk

在Ubuntu下:

apt-get install apache2-mpm-worker sun-java6-jdk tomcat5.5-webapps libapache2-mod-jk

然后访问本机的80端口,确保apache启动了; 访问本机的8180端口,确保tomcat启动了(Debian/Ubuntu的tomcat默认8180端口)

以上命令把apache的jk插件也安装了,不用编译jk了。jk的配置文件安装在了/etc/libapache2-mod-jk/workers.properties 修改这个文件,修改后的有效内容是:

workers.tomcat_home=/usr/share/tomcat5.5
workers.java_home=/usr/lib/jvm/java-1.5.0-sun-1.5.0.14
ps=/
worker.list=ajp13_worker
worker.ajp13_worker.port=8009
worker.ajp13_worker.host=localhost
worker.ajp13_worker.type=ajp13

然后配置apache的配置文件/etc/apache2/apache2.conf,在文件的最后加入:

JkWorkersFile /etc/libapache2-mod-jk/workers.properties
JkLogFile /var/log/apache2/mod_jk.log
JkLogLevel info
JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
JkOptions ForwardKeySize ForwardURICompat -ForwardDirectories
JkRequestLogFormat "%w %V %T"
JkMount /* ajp13_worker

重新启动apache:

/etc/init.d/apache2 restart

然后用浏览器访问apache,就会出现tomcat的页面了,大功告成!

Back to Top

2007-2017 © 北京瑞豪开源科技有限公司 京ICP备13004995号-2