httpd是Apache超文本传输协议(HTTP)服务器的主程序。它被设计为一个独立运行的后台进程,它会建立一个处理请求的子进程或线程的池对外提供服务。httpd支持基于 虚拟主机,以及基于HOST、IP、PORT实现虚拟主机,反向代理,负载均衡,路径别名,用户认证,basic,支持第三方模块等众多特性。本文主要描述了Linux下httpd的安装以及相关基本用法。
一、httpd的安装
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
演示环境及版本
# cat /etc/issue
CentOS release 6.5 (Final)
Kernel r on an m
# uname -r
2.6.32-431.el6.x86_64
查看httpd是否已安装
# rpm -qa httpd
使用yum列出相关httpd安装文件,此处为本地yum源
# yum list |grep httpd
httpd.x86_64
2.2.15-29.el6.centos
local_server
httpd-devel.i686
2.2.15-29.el6.centos
local_server
httpd-devel.x86_64
2.2.15-29.el6.centos
local_server
httpd-manual.noarch
2.2.15-29.el6.centos
local_server
httpd-tools.x86_64
2.2.15-29.el6.centos
local_server
安装及验证httpd
# yum -y install httpd
# rpm -qa |grep httpd
httpd-tools-2.2.15-29.el6.centos.x86_64
httpd-2.2.15-29.el6.centos.x86_64
使用rpm方式寻找配置文件
# rpm -qc httpd
常用的配置文件:
/etc/httpd/conf.d/*.conf
###辅助配置文件
/etc/httpd/conf/httpd.conf
###主配置文件
/etc/sysconfig/httpd
###httpd工作模式配置文件
使用rpm方式查看安装位置及生成的二进制文件
# rpm -ql httpd
主程序:
/usr/sbin/httpd
MPM模式默认
/usr/sbin/httpd.event
/usr/sbin/httpd.worker
使用rpm方式查看包的帮助文件
# rpm -qd httpd
启动脚本:/etc/rc.d/init.d/httpd
日志文件目录:
/var/log/httpd
access_log:访问日志
error_log: 错误日志
站点文档目录:(站点根目录)
/var/www/html
httpd的工作目录:/var/www
二、httpd的工作模式
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
1、MPM: Multipath Processing Module(多路处理模块)
prefork: 多进程模型,每个进程响应一个请求;稳定性好,但并发能力有限;预先生成多个空闲进程;
由于prefork使用select()系统调用,所以最大并发不能超过1024;
worker:多进程模型,每个进程可生成多个线程,每个线程响应一个请求;预先生成多个空闲线程;
event:一个进程直接响应n个请求;可同时启动多个进程;
httpd-2.2: 测试使用;
### Author : Leshami
httpd-2.4: 可生产使用;
###
Blog
: http://blog.csdn.net/leshami
2、几种工作方式的切换
prefork模式下
# service httpd start
Starting httpd:
[
OK
]
# ps -ef|grep httpd |grep -v grep ###一个主进程,生成了8个空闲进程
root
6413
1
0 09:40 ?
00:00:00 /usr/sbin/httpd
apache
6416
6413
0 09:40 ?
00:00:00 /usr/sbin/httpd
apache
6417
6413
0 09:40 ?
00:00:00 /usr/sbin/httpd
apache
6418
6413
0 09:40 ?
00:00:00 /usr/sbin/httpd
apache
6419
6413
0 09:40 ?
00:00:00 /usr/sbin/httpd
apache
6420
6413
0 09:40 ?
00:00:00 /usr/sbin/httpd
apache
6421
6413
0 09:40 ?
00:00:00 /usr/sbin/httpd
apache
6422
6413
0 09:40 ?
00:00:00 /usr/sbin/httpd
apache
6423
6413
0 09:40 ?
00:00:00 /usr/sbin/httpd
# ss -tulpn |grep httpd
tcp
LISTEN
0
128
:::80
:::*
users:(("httpd",6413,4),("httpd",6416,4),("httpd",6417,4),("httpd",6418,4),
("httpd",6419,4),("httpd",6420,4),("httpd",6421,4),("httpd",6422,4),("httpd",6423,4)
# netstat -nltp|grep 80
tcp
0
0 :::80
:::*
LISTEN
6413/httpd
worker工作方式
# cat /etc/sysconfig/httpd|grep -v ^#
HTTPD=/usr/sbin/httpd.worker
# service httpd restart
Stopping httpd:
[
OK
]
Starting httpd:
[
OK
]
[root@orasrv1 ~]# ps -ef|grep httpd|grep -v grep
root
2261
1
0 17:47 ?
00:00:00 /usr/sbin/httpd.worker
apache
2264
2261
0 17:47 ?
00:00:00 /usr/sbin/httpd.worker
apache
2265
2261
0 17:47 ?
00:00:00 /usr/sbin/httpd.worker
apache
2266
2261
0 17:47 ?
00:00:00 /usr/sbin/httpd.worker
event工作方式
注,尽管2.2版本可以设置工作方式为httpd.event,生产环境不建议使用
# cat /etc/sysconfig/httpd|grep -v ^#
HTTPD=/usr/sbin/httpd.event
[root@orasrv1 ~]# service httpd restart
Stopping httpd:
[
OK
]
Starting httpd:
[
OK
]
[root@orasrv1 ~]# ps -ef|grep httpd|grep -v grep
root
2402
1
0 17:49 ?
00:00:00 /usr/sbin/httpd.event
apache
2405
2402
0 17:49 ?
00:00:00 /usr/sbin/httpd.event
apache
2406
2402
0 17:49 ?
00:00:00 /usr/sbin/httpd.event
apache
2407
2402
0 17:49 ?
00:00:00 /usr/sbin/httpd.event
三、httpd模块化特性
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
高度模块化
core + modules,
DSO: Dynamic Shared Object
模块目录:
/etc/httpd/modules: 符号链接文件
/usr/lib64/httpd/modules
模块的查看
httpd -M
###查看当前httpd进程的所有模块
httpd.event -M
###查看event工作模式下的所有模块 更正@20160712
httpd.worker -M
###worker工作模式下的所有模块
更正@20160712
httpd.worker -l
###worker工作模式下的核心模块
更正@20160712
模块的查看示例
# httpd -M
Loaded Modules:
core_module (static)
mpm_prefork_module (static)
http_module (static)
so_module (static)
auth_basic_module (shared)
..............
# httpd.event -l
Compiled in modules:
core.c
event.c
http_core.c
mod_so.c
模块的动态装载与卸载
# cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.bak
# cat /etc/httpd/conf/httpd.conf |grep authn_alias_module
LoadModule authn_alias_module modules/mod_authn_alias.so
# vi /etc/httpd/conf/httpd.conf
###注释mod_authn_alias.so模块
# cat /etc/httpd/conf/httpd.conf |grep authn_alias_module
#LoadModule authn_alias_module modules/mod_authn_alias.so
# service httpd restart
# httpd -M
###使用该方式前后进行对比即可知道模块是否装载或卸载
四、验证httpd服务
复制代码
1
2
3
# echo "<h1>orasrv1.xlk.com</h1>" >/var/www/html/index.html
# curl http://192.168.21.10
<h1>orasrv1.xlk.com</h1>
最后
以上就是精明银耳汤最近收集整理的关于Linux下安装Apache httpd的全部内容,更多相关Linux下安装Apache内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复