CentOS6下使用Apache部署HTTP服务(2)

我们会发现日志、模块、运行状态的目录都是软链接文件,进入各自真正的目录后,日志目录下都是xxx_log-xxx的文件,模块目录下都是xxx.so的文件,但是运行状态目录下没有文件,下面来具体说一说该运行状态目录下的文件的作用,

CentOS6下使用Apache部署HTTP服务

如果把http服务开启之后生成的httpd.pid删除,再次查看httpd的状态,显示了错误信息,

CentOS6下使用Apache部署HTTP服务

如果尝试停止httpd,虽然会出现显示服务停止成功OK的标志,但是httpd进程还存在,说明stop失败,

CentOS6下使用Apache部署HTTP服务

现在手动恢复该进程文件,一切又恢复正常。说明start、stop、status的httpd服务命令都是依靠这个httpd.pid进程文件来对指定的进程生效,如果把这个进程文件删除,将无法识别httpd的进程,也就无法对httpd进程进行操作。由此我们也可以认识到判断一个服务是否在运行最准确的方法是查看相应端口监听状态。

CentOS6下使用Apache部署HTTP服务

小tips:httpd.pid进程文件是httpd主进程开启之后将PID写入的,主进程终止之后该进程文件会删除。如果在主进程开启之前随意手动写了一个PID至进程文件中,则会在主进程开启之后覆盖手动写的PID。

总结:另外Apache本身也会提供开启http服务的程序,该程序存放位置为/usr/sbin/apachectl,该文件为shell脚本,我们也可以通过该脚本达成和/etc/init.d/httpd同样的效果。

三、变换Apache的处理模式(MPM)

当前的Apache仅仅支持prefork模式和worker模式,event模式目前还在测试阶段,因此我们主要关心前两种模式。那么怎么查看Apache的当前的处理模式呢,我们可以利用开启服务的命令来判断当前的处理模式。首先确保http服务属于开启状态,然后利用pstree和ps命令查看,

CentOS6下使用Apache部署HTTP服务

我们可以确定Apache默认在不修改的情况下会工作在prefork模式下,至于变换Apache的处理模式则要用到/etc/sysconfig/httpd文件,只需要修改文件中HTTPD参数然后重启http服务,就可以变换工作模式了。

CentOS6下使用Apache部署HTTP服务

更改之后在利用pstree和ps命令查看不同。

CentOS6下使用Apache部署HTTP服务

四、配置文件中全局环境设置

Apache中提供了两个配置文件,分别为/etc/httpd/conf/httpd.conf(主要),/etc/httpd/conf.d/*.conf(额外,用户可以在此修改配置文件),其中主要的配置文件多用来设定全局指令,不建议普通用户在主配置文件中修改;对于额外的配置文件,可以把对特定功能的指令配置设定在此目录下,并且文件必须以.conf结尾。

主配置文件中的内容分为三大部分,分别为全局环境配置、主服务的配置、虚拟主机的配置,对应于section{1..3},其中全局环境(section1)配置中各个指令的含义如下:   

ServerTokens    允许在客户端显示的服务器版本信息,如下图所示,

CentOS6下使用Apache部署HTTP服务

还有其他的参数如下:显示的版本信息依次更加详细,建议使用Prod保护服务器端的安全。

+------+-----------------------------+


        | Prod | Apache                      |


        +------+-----------------------------+


        | Major| Apache/2                    |


        +------+-----------------------------+


        | Minor| Apache/2.2                  |


        +------+-----------------------------+


        | Min  | Apache/2.2.15              |


        +------+-----------------------------+


        | OS  | Apache/2.2.15 (CentOS)      |


        +------+-----------------------------+


        | Full | Apache/2.2.15 (CentOS) DAV/2|


        +------+-----------------------------+

Listen [IP:]PORT    httpd监听的IP和端口,IP缺省表示所有IP,一般为所有IP:80

该指令不能注释(#)不写,如果该指令缺省不写,启动服务会出现异常。

ServerRoot    定义配置文件的根目录,一般为/etc/httpd/

Timeout    连接状态能够持续的时间

AddDefaultCharset    定义httpd传输数据的编码格式,一般为UTF-8

编码格式不对应会在浏览器上显示乱码,只能修改浏览器的编码格式

KeepAlive    是否开启持久连接的指令,默认On开启状态,Off为关闭状态

每次从服务器下载文件的时候都需要建立一次TCP连接,如果为Off,下载完毕后会断开此次TCP连接;如果为On,下载完毕后会继续保持此次TCP连接。

MaxKeepAliveRequests    一次TCP连接能够发送的最大请求数,例如值为3时,可以利用GET发送4次请求,第1次不算哦!!

该参数只有在KeepAlive设置为On的时候才会生效,设置为0表示没有限制

KeepAliveTimeout    在本次TCP连接中等待下一个请求的时间,超过会断开此次TCP连接

该参数同样只有在KeepAlive设置为On的时候才会生效

可以利用telnet测试keepalive:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/9b2eee164881679d4442cc40ae62676f.html