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 Linux技术 on 2008/10/06 with No Comments
如果一个网站有多个域名,比如:rashost.com, home.rashost.com, rashost.com。无论用户输入哪个域名访问该网站,我们希望网站返回一个统一的域名,比如rashost.com。
目前的Apache实现这一个功能有两种方法,详见 http://httpd.apache.org/docs/1.3/misc/FAQ.html#canonical-hostnames
这两种方法都有点麻烦,如果能有一个directive能直接实现这个功能就好了。网络上已经有人提出了这样的需求,但现在apache还没有实现这个功能,
Posted by zuzhihui in 常见问题 on 2008/07/13 with No Comments
在Windows下配置Apache其实和在Linux下配置差不多,都是需要先把要配置的站点域名指向VPS的IP地址,然后打开apache的主配置文件httpd.conf,在该文件的最后加入下面段落,然后重启apache即可:
NameVirtualHost *
ServerName rashost.com/blog
DocumentRoot "c:/wamp/www/vpsblog/"
上面配置的站点是 vpsblog.rashost.com/ ,该站点对应的目录是”c:/wamp/www/vpsblog/”,站点名称和目录名称你当然要根据自己的需要自己定。
如果要配置多个站点,那就把上面的…部分重复添加配置几次即可。
Posted by zuzhihui in Linux技术 on 2008/07/07 with 12 Comments
RasHost VPS允许客户在一个VPS上绑定无限个站点。本文讲述在Ubuntu和Debian这两种Linux操作系统下,如果给Apache绑定站点。
Debian/Ubuntu的apache的配置文件的管理方式是一样的,Ubuntu本身就是基于Debian的,所以很多配置和Debian几乎一模一样。Debian/Ubuntu的apache配置文件都在/etc/apache2目录下。/etc/apache2下面有几个配置文件,还有几个子目录。/etc/apache2下面的配置文件逐个解释如下:
/etc/apache2下面的几个目录解释如下:
从上面的列表可以看出,mods-available和mods-enabled这两个目录的区别是apache是否去读取这个目录。有个疑问:如果apache从来不读取mods-available目录,那要它何用?答案是mods-available下存放所有apache模块的配置文件,但这些模块不一定是激活的,激活的模块的配置文件链接到mods-enabled下面,如果没有链接到mods-enabled下面,那肯定是一些没有激活的模块。a2enmod命令可以列出mods-available下面的所有模块,管理员可以选择激活哪个模块,激活之后的模块就会在mods-enabled下面添加一个链接。
同理,sites-available和sites-enabled这两个目录也是这样的原理,a2ensite命令可以列出sites-available下存在的站点文件,可以创建站点文件的链接到sites-enabled目录下。
a2enmod == Apache2 ENable MODule
a2ensite == Apache2 ENable SITE
缺省情况下,sites-available下只有一个文件default,sites-available/default链接到sites-enabled目录下的链接名为000-default。apache的习惯是一个站点一个配置文件,但我们为了方便管理,把所有的站点的配置都保存到default这个文件里面。
ServerName rashost.com
ServerAlias rashost.com home.rashost.com
DocumentRoot /home/rashost.com/public_html/
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的页面了,大功告成!
近期评论