apache

以前一直在用Apache,却也一直不知道它有那么多的工作模式,看了手册才知道,在这里我就prefork和worker两种最为常用的工作模式进行比较:

prefork–Unix平台上的默认(缺省)MPM,使用多个子进程,每个子进程只有一个线程。每个进程在某个确定的时间只能维持一个连接,效率高,但内存占用量比较大。

 

worker–使用多个子进程,每个子进程有多个线程,每个线程在某个确定的时间只能维持一个连接,内存占用量比较小,适合高流量的http服务器。缺点是假如一个线程崩溃,整个进程就会连同其任何线程一起”死掉”,所以要保证一个程式在运行时必须被系统识别为”每 个线程都是安全的”。

 

了解了这些个之后,怎么才能知道你的Apache服务器工作在什么状态呢?使用“apachectl -l”命令就可以显示出来。

Apache的默认的工作模式为prefork,如何把它改成worker模式呢?

如果你还未编译安装,那就简单了,在编译的时候加个参数 “–with-mpm=worker”,就好了;

如果你想更改正在运行的Apache的工作模式:

1.将当前的prefork模式启动文件改名

 

   mv httpd httpd.prefork

2.将worker模式的启动文件改名

   mv httpd.worker httpd

 

3.修改Apache配置文件

vi /usr/local/apache2/conf/extra/httpd-mpm.conf

找到里边的如下一段,可适当修改负载等参数:

StartServers 2
MaxClients 150
MinSpareThreads 25
MaxSpareThreads 75
ThreadsPerChild 25
MaxRequestsPerChild 0

4.重新启动服务

/usr/local/apache2/bin/apachectl restart

PS:处于稳定性和安全性考虑,在真正的生产环境,请勿轻易改变其工作模式。

 

摘自:http://ourapache.com/archives/288

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

Apache

  • XAMPP Apache 无法启动原因1(缺少VC运行库):

这个就是我遇到的问题原因,下载安装的XAMPP版本是xampp-win32-1.7.7-VC9,而现有的Windows XP系统又没有安装VC9运行库,所以无法继续运行相关服务,这个可以在Windows事件查看器里看到错误日志提示。

既然找到问题原因,解决就很容易了,到微软下载中心搜索下载安装一个Microsoft Visual C++ 2008 Redistributable安装包即可。

 

  • XAMPP Apache 无法启动原因2(80端口被占用):

这是无法启动Apache服务的最常见原因了,像迅雷等P2P软件都会占用80端口,一般关闭这些软件后就可以启动了,如果你有需要也可以先启动XAMPP后再开这些软件。

 

  • 如果无法确定是哪个程序占用了80端口,可以按下面方法找出:

1、打开“开始菜单”——点击“运行”——输入“CMD”打开命令行窗口,在里面输入“netstat -a”命令并回车(不包含双引号,为防止输入错误,你可以直接复制用鼠标右键粘贴)。

2、运行命令后,会显示一系列端口的使用情况,查找到“0.0.0.0: 80”对应的PID进程标识符,记录下来,等下会用到。

3、鼠标右键点击桌面任务栏,打开Windows任务管理器,在“查看”——“选择列”中勾选“PID(进程标识符)”确定,即可看到每个程序使用的端口状态。结合上面所查到的80端口对应的PID进程标识符,就可确定是哪个程序占用了80端口。要关闭该程序建议先从该软件界面中关闭,如果找不到软件界面关闭,可鼠标右键直接结束该进程。

如果不想这么麻烦,也可以修改XAMPP不使用80端口使用其它,修改方法:打开XAMPP安装目录,修改apacheconfhttpd.conf文件,找到下面这两句,将端口修改为8081或其它即可。

Listen 80

ServerName localhost:80

 

  • XAMPP Apache 无法启动原因3(443端口被占用):

这个情况比较少见,会占用443端口的程序并不多。XAMPP启动除需要80端口外,还有一个加载SSL模块的443端口。如果你遇到443端口被占用的情况,有三种方法可以解决,分别是:

1、排查端口占用程序,关闭后再启动XAMPP(排查方法见上面)。

2、修改XAMPP SSL模块使用端口号,修改方法:打开XAMPP安装目录,修改apacheconfextrahttpd-ssl.conf文件,找到Listen 443这么一句,将443端口改成4433或其它。

3、如果你不使用Apache的https,也可以关闭掉SSL模块,方法如下:打开XAMPP安装目录,修改apacheconfhttpd.conf文件,找到Include “conf/extra/httpd-ssl.conf”这句,将其注释掉即可。

 

  • XAMPP Apache 无法启动原因4(关闭mod_perl模块):

如果Apache服务启动后又马上自动关闭,那么你可以试着运行XAMPP安装目录下的xampp_start.exe程序文件,将mod_perl模块关闭掉。

后言:

以上只是列出几种常见的问题原因及解决方法,每个人的操作环境不一样,出现的问题也可能不同。遇到问题时可查看一下Windows事件查看器和XAMPP的日志文件,这样会有助于问题的找出和解决。再不行,要学会使用搜索引擎。下面列出两个XAMPP存放日志文件的目录:

amppapacheerro

xamppapachelogs

 

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注