<IfModule mpm_worker_module>
StartServers 3 #同prefork下的StartServers指令
MinSpareThreads 75 #最小空闲线程数
MaxSpareThreads 250 #最大空闲线程数
ThreadsPerChild 25 #每个子进程的线程数
MaxRequestWorkers 400 #同prefork下的MaxRequestWorkers指令
MaxConnectionsPerChild 0 #同prefork下的MaxConnectionsPerChild指令
</IfModule>
最后,我们来探讨下httpd如何与CGI脚本进行交互,实现动态内容。以普通的bash脚本为例。我们创建一个bash脚本如下:
#!/bin/bash
echo Content-type: text/html
echo Hello, World.
脚本文件命名为hello.cgi。
我们将此脚本放到/usr/local/httpd/cgi-bin目录中,目的是使用户在浏览器上访问,就能在网页上显示”Hello, World.”。那么该如何设置呢?打开httpd.conf文件,参考如下配置代码:
<IfModule alias_module>
ScriptAlias /cgi-bin/ “/usr/local/httpd/cgi-bin/"
</IfModule>
<IfModule mime_module>
AddHandler cgi-script .cgi
</IfModule>
<Directory “/usr/local/httpd/cgi-bin”>
Options ExecCGI
Require all granted
</Directory>
下面依次解释下以上指令的意义。大家可以看到命令分别包含在alias和mime的模块判断中,所以先在LoadModule中找到alias和mime两个模块并取消注释,同时确认你的/usr/local/httpd/modules中真有这两个模块(应该都有,这属于httpd的核心模块)。ScriptAlias的意义是将uri为/cgi-bin/的路径映射到物理目录/usr/local/httpd/cgi-bin中,也就是你放cgi脚本的那个目录。AddHandler命令表示添加一个cgi的脚本处理器,使httpd能处理cgi脚本,这个cgi脚本处理器名为cgi-script,它处理以.cgi后缀结尾的文件。Options下的ExecCGI选项表示,该目录下可以执行CGI脚本。配置完后重启服务器,然后就可以愉快的进行动态内容的访问了。
此篇文章仅仅介绍了httpd服务器的9牛之1毛,使大家对httpd服务器有个基础的认识。当然httpd服务器还有很多功能,如日志、重写、认证、授权、与php模块进行结合使用、与php-fpm管理器进行结合使用。它是web服务架构中重要的一环,为web服务基础设施贡献了许多力量。