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模式。
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站点建立连接的数量,不会超过你所设置的并发连接数值
Posted by zuzhihui in apache on 2008/07/24 with No Comments
经常有客户在96M/128M内存的VPS上安装LAMP应用,碰到内存不足,然后系统把mysql进程杀死的情况。这种现象的根本原因是内存不足了。而大部分内存是被apache占用了的,VPS上的apache又是系统的默认配置,所以比较占内存。
关于优化apache的内存,轻参考如下文章:
另外对mysql,可以修改my.cnf,启用skip-innodb,因为我们用myisam就足够了!
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需要如下几个步骤:
对于第一步,请参考我们以前的博客:
对于第二步,安装wordpress跟在apache下一样,不再罗嗦了。安装完wordpress后就可以正常使用了,如果想要启用wordpress的不带问号方式的永久链接,则需要进行第三步。
第三步,我配置的永久链接是这个形式:/index.php/%year%/%monthnum%/
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即可看到效果了
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的页面了,大功告成!
近期评论