低负荷web服务器的启动方式
前天安装arpache web服务器,想使用inetd启动,发现书上的介绍与
实际使用有些差距,经过一番的折腾终于搞定,希望与大家分享一下。
我们在Linux服务器中可能会运行很多的程序对外提供不同的服务功能:
例如邮件服务、WEB服务器、FTP服务器,这样就需要相应的程序运行,如何运行? 是不管是否有人使用都让它们运行占领内存还是需要的时候才启动?
通过inetd启动效率低,是否值得? 这是你的事情啦。如果你的内存不多的时候,我认为最好不要让它们一直运行。
Linux中使用inetd来监控tcp/ip服务请求,从网络上某个socket端口面
过来一个请求后,首先查找位于 /etc/services 文件中是否有该端口的信息,如果没有则丢弃该请求。否则找到该端口提供的服务名称以及别名,然后到/etc/inetd.conf文件中寻找该服务名称或者别名关联的服务程序信息,启动那个程序就可以了。例如telnet服务就是这样启动的。 Linux中基于安全方面的考虑,使用tcpd守护程序进行进一步的保护。
安装了Linux后,如果安装了WEB服务器,缺省的是启动机器后运行httpd
的10个进程,即无论是否有请求一直运行。如果需要让它能够在需要时启动,我们可以采用下面的方法:
1.修改/etc/httpd/conf/httpd.conf文件,将ServiceType从StandAlone改为inetd,即web服务器采用从inetd启动的方法,这时httpd无法自己启动。
2.查看/etc/services中是否有tcp端口80的信息,没有则加入一行
www 80/tcp http
表明在80号tcp/ip端口的服务是www(http)服务。
3.查看/etc/inetd.conf文件,在里面加入一行
http ...root /usr/bin/tcpd httpd
通知inetd如果出现了http请求,通过tcpd启动httpd服务程序,上面一行
中的信息不全,因为现在我记得不是很清楚了(现在在使用晕倒98),可以将关于telnet的一行照抄下来,改动一下即可。(我就是这么做的 ~_~)
4.重新启动机器或者?以后使用ps -A | grep http检查一下,应该找不到
相应的进程,否则httpd.conf没有设置正确。
5.使用telnet localhost 80或者 lynx localhost试一下能否进入本机网站,如果正确那就OK啦。
6.如果没有成功 @_@,仔细检查一下是否按照上面说的做对了?多看看相关的帮助了,也可以与我讨论(mailto [email protected])。 发布人:netbull 来自:Linux双利刃