HTTPD服务详解
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HTTPD服务详解相关的知识,希望对你有一定的参考价值。
HTTPD服务详解
目录
一、httpd的程序版本
二、httpd的特性
三、httpd的功能特性
四、httpd使用
1、httpd的安装
2、程序环境
Httpd-2.2 (Centos6)
http-2.4 (Centos7)
五、http配置相关说明
1.修改监听的ip和port
2、持久连接
3、MPM
4、DSO配置指令模块加载
5、定义Main’server文档页面路径
6、站点访问控制
文件系统路径
URL路径
7、<Directory> 中基于源地址实现访问控制
Options
AllowOverride
Order 和allow 、deny
8、定义站点主页面
9、定义路径别名
10、设定默认字符集
11、日志设定
错误日志
访问日志
日志格式选项
12、基于用户的访问控制
定义安全域
提供账号和密码存储(文本文件)
13、虚拟主机
三种实现方案
基于ip的虚拟主机示例
基于端口的示例
基于FQDN (域名)示例
14、Status页面 (服务器状态)
15、curl命令
16、user/group
17、使用mod_deflate模块压缩页面优化传输速度
使用场景:
18、HTTPS协议https
SSL协议会话过程
https实现过程
19、httpd自带的工具程序
Httpasswd
Apachectl
Apxs
Rotatelogs
Suexec
Ab压测工具 20
前言
httpd是Apache超文本传输协议(HTTP)服务器的主程序。被设计为一个独立运行的后台进程,它会建立一个处理请求的子进程或线程的池。
httpd早期叫做apache----a patcy server ,属于Apache软件基金会(ASF:Apache software foundation)的一个项目,后来apache更名为Httpd,因为这样更符合Http server的含义。 常见的http服务器程序有httpd(Apache)、nginx、Lighttpd。
一、httpd的程序版本
httpd1.3 :官方已经停止维护
httpd2.0
httpd2.2
httpd2.4 目前最新稳定版
如果想了解具体介绍可以自行google
二、httpd的特性
高度模块化 核心模块+功能模块
DSO dynamic share object 动态装卸载
多路处理模块机制MPM( Multipath processing Modules)
1、MPM多路处理模块机制
Prefork 多进程模型,每个进程响应一个请求,一个主进程,多个子进程
一个主进程:负责生成子进程及回收子进程;负责创建套接字;负责接收请求,并将其派发给某子进程进行处理;
N个子进程:每个子进程处理一个请求;
图示:
Worker 多进程多线程模型,每个线程响应一个请求, M*N
工作模式
一个主进程:负责生产子进程;
多个子进程:每个子进程负责生成多个线程;
每个线程:负责响应用户请求;
并发响应数量 :M*N
M:子进程数量
N:每个子进程所能创建的最大线程数量;
图示:
Event 事件驱动模型,一个进程响应多个请求
一个主进程:负责生成子进程;负责创建套架子;负责接收请求,并将其牌发给某子进程处理;
子进程:基础时间驱动机制直接影响多个请求;
http2.2:仍为测试使用模型
http2.4event可生产环境使用
图示:
三、httpd的功能特性
CGI: Common Gateway Interface
虚拟主机:基于IP,基于端口,基于FQDN
反向代理
负载均衡
路径别名
丰富的用户认证机制
Basic
Digest
支持扩展的第三方模块
四、httpd使用
1、httpd的安装
Rpm包:centos 发行版中提供
编译安装:定制功能,或其他原因
2、程序环境
Httpd-2.2 (Centos6)
配置文件:
/etc/httpd/conf/httpd.conf
/etc/httpd/conf.d/*.conf
服务脚本
/etc/rc.d/init.d/httpd
脚本配置文件:/etc/sysconfig/httpd
主程序文件:
/usr/sbin/httpd
/usr/sbin/httpd.event
/usr/sbin/httpd.worker
日志文件:
/var/log/httpd:
access_log :访问日志
error_log: 错误日志
站点文档:
/var/www/html (默认)
模块文件路径:
/usr/lib64/modules
服务控制和启动
Chkconfig httpd on|off
Service {start|stop|restart|statsu|reload} httpd
http-2.4 (Centos7)
配置文件
/etc/httpd/conf/httpd.conf 主配置文件
/etc/httpd/conf.d/*.conf 扩展配置文件(可自主创建)
模块是配置文件:/etc/httpd/conf.d/modules.d/*.conf
Systemd unit file
/usr/lib/systemd/system/htttpd.service
主程序文件:
/usr/sbin/httpd
Httpd 2.4支持MPM的动态切换
模块文件路径
/usr/lib64/modules
服务控制和启动
Systemctl enable|disable httpd.service
Sysyemctl {start|stop|restart|status|reload} httpd.service
五、http配置相关说明
1.修改监听的ip和port
Listen [ip:]port
省略ip表示0.0.0.0
Listen 指令可重复出现多次
Listen 80
Listen 8080
修改监听socket ,重启服务进程方可有效。
2、持久连接
Persistent connention :tcp连接建立后,每个资源获取完成后不全断开连接,而是继续等待将其他资源请求的进行;
如何断开?
数量限制
时间限制
副作用:对并发访问量较大的服务器,长连接机制会使得后续的某些请求无法得到正常响应; 折衷做法:使用较短的持久连接时长,以及较少的请求数量
KeepAlive on|off
KeepAlivetimeout 15 时间
MAXkeepAliceRequests 100 数量
测试方式:
[[email protected]_1 ~]$ telnet www.linux.top 80
Trying 172.16.250.240...
Connected to www.linuxinfo.top.
Escape character is ‘^]‘.
GET /index.html http1.1
Host:172.16.250.240 #此处两处回车
HTTP/1.1 200 OK
Date: Thu, 22 Dec 2016 15:29:44 GMT
Server: Apache/2.4.6 (CentOS) php/5.4.16
Last-Modified: Sun, 11 Dec 2016 12:29:57 GMT
ETag: "5-54361251beb00"
Accept-Ranges: bytes
Content-Length: 5
Connection: close
Content-Type: text/html; charset=UTF-8
mage #此处为首页内容
Connection closed by foreign host.
3、MPM
Httpd-2.2不支持同时编译多个MPM模块,所以只能编译选定要使用的那个;Centos6的rpm包为此专门提供了三个应用程序文件,httpd(profork) ,httpd.worker, httpd.event ,分别用于实现对不同的MPM机制的支持;确认现在使用的是哪个程序文件的方法:
ps aux |grep httpd
默认使用的为/usr/sbin/httpd, 其为prefork的MPM模块
查看httpd程序的模块列表:
查看静态编译的模块:
#httpd –l
查看静态编译及动态编译的模块:
#httpd –M
更换支持不同的MPM的主程序:
编辑/etc/sysconfig/httpd
HTTPD变量
HTTPD=/usr/sbin/httpd.{worker|event}
注意:重启服务方可生效
MPM配置
Prefork 配置
<IfModule prefork.c>
StartServers 8
MinSpareServers 5
MaxSpareServers 20
ServerLimit 256
MaxClients 256
MaxRequestsPerChild 4000
</IfModule>
startServers:设置服务器启动时建立的子进程数量。因为子进程数量动态的取决于负载的轻重,所有一般没有必要调整这个参数。
MinSpareServers:设置空闲子进程的最小数量。所谓空闲子进程是指没有正在处理请求的子进程。如果当前空闲子进程数少于 MinSpareServers ,那么Apache将以最大每秒一个的速度产生新的子进程。只有在非常繁忙机器上才需要调整这个参数。将此参数设的太大通常是一个坏主意。
MaxSpareServers:设置空闲子进程的最大数量。如果当前有超过MaxSpareServers数量的空闲子进程,那么父进程将杀死多余的子进程。只有在非常繁忙机器上才需要调整这个参数。将此参数设的太大通常是一个坏主意。如果你将该指令的值设置为比MinSpareServers 小,Apache将会自动将其修改成"MinSpareServers+1"。
ServerLimit:服务器允许配置的进程数上限。只有在你需要将MaxClients设置成高于默认值256的时候才需要使用。要将此指令的值保持和MaxClients一样。修改此指令的值必须完全停止服务后再启动才能生效,以restart方式重启动将不会生效。
MaxClients:用于伺服客户端请求的最大请求数量(最大子进程数),任何超过MaxClients限制的请求都将进入等候队列。默认值是256,如果要提高这个值必须同时提高ServerLimit的值。笔者建议将初始值设为(以Mb为单位的最大物理内存/2),然后根据负载情况进行动态调整。比如一台4G内存的机器,那么初始值就是4000/2=2000。
MaxRequestsPerChild:设置每个子进程在其生存期内允许伺服的最大请求数量。到达MaxRequestsPerChild的限制后,子进程将会结束。如果MaxRequestsPerChild为"0",子进程将永远不会结束。将MaxRequestsPerChild设置成非零值有两个好处:可以防止(偶然的)内存泄漏无限进行而耗尽内存;
给进程一个有限寿命,从而有助于当服务器负载减轻的时候减少活动进程的数量。如果设置为非零值,笔者建议设为10000-30000之间的一个值。
公式:
MaxClients<=ServerLimit
worker 配置
<IfModule worker.c>
StartServers 4
MaxClients 300
MinSpareThreads 25
MaxSpareThreads 75
ThreadsPerChild 25
MaxRequestsPerChild 0
</IfModule>
StartServers:设置服务器启动时建立的子进程数量。因为子进程数量动态的取决于负载的轻重,所有一般没有必要调整这个参数。
ServerLimit:服务器允许配置的进程数上限。只有在你需要将MaxClients和ThreadsPerChild设置成需要超过默认值16个子进程的时候才需要使用这个指令。不要将该指令的值设置的比MaxClients 和ThreadsPerChild需要的子进程数量高。修改此指令的值必须完全停止服务后再启动才能生效,以restart方式重启动将不会生效。
ThreadLimit:设置每个子进程可配置的线程数ThreadsPerChild上限,该指令的值应当和ThreadsPerChild可能达到的最大值保持一致。修改此指令的值必须完全停止服务后再启动才能生效,以restart方式重启动将不会生效。
MaxClients:用于伺服客户端请求的最大接入请求数量(最大线程数)。任何超过MaxClients限制的请求都将进入等候队列。默认值是"400",16 (ServerLimit)乘以25(ThreadsPerChild)的结果。因此要增加MaxClients的时候,你必须同时增加 ServerLimit的值。笔者建议将初始值设为(以Mb为单位的最大物理内存/2),然后根据负载情况进行动态调整。比如一台4G内存的机器,那么初始值就是4000/2=2000。
MinSpareThreads:最小空闲线程数,默认值是"75"。这个MPM将基于整个服务器监视空闲线程数。如果服务器中总的空闲线程数太少,子进程将产生新的空闲线程。
MaxSpareThreads:设置最大空闲线程数。默认值是"250"。这个MPM将基于整个服务器监视空闲线程数。如果服务器中总的空闲线程数太多,子进程将杀死多余的空闲线程。MaxSpareThreads的取值范围是有限制的。Apache将按照如下限制自动修正你设置的值:worker要求其大于等于 MinSpareThreads加上ThreadsPerChild的和。
ThreadsPerChild:每个子进程建立的线程数。默认值是25。子进程在启动时建立这些线程后就不再建立新的线程了。每个子进程所拥有的所有线程的总数要足够大,以便可以处理可能的请求高峰。
MaxRequestsPerChild:设置每个子进程在其生存期内允许伺服的最大请求数量。到达MaxRequestsPerChild的限制后,子进程将会结束。如果MaxRequestsPerChild为"0",子进程将永远不会结束。将MaxRequestsPerChild设置成非零值有两个好处:可以防止(偶然的)内存泄漏无限进行而耗尽内存;给进程一个有限寿命,从而有助于当服务器负载减轻的时候减少活动进程的数量。如果设置为非零值,笔者建议设为10000-30000之间的一个值。
公式:
ThreadLimit >= ThreadsPerChild
MaxClients <= ServerLimit * ThreadsPerChild 必须是ThreadsPerChild的倍数
MaxSpareThreads >= MinSpareThreads+ThreadsPerChild
4、DSO配置指令模块加载
格式:
loadModule <mod_named> <mod_path>
模块文件路径可使用相对路径:
相对于serverRoot (默认/etc/httpd)
注意:修改后 service reload httpd 重新加载配置文件
5、定义Main’server文档页面路径
DocumentRoot “/path”
文档路径映射:
DocumentRoot指向的路径为URL路径的起始位置
其相当于站点URL的根路径
(filesystem)/web/host1/index.html(URL)/index.html
6、站点访问控制
可基于两种机制指明对那些资源进行何种控制访问
文件系统路径
<Directory “”>
…
</Directory> //对目录下所有资源实现访问控制
<File “”>
</File>
<FileMath “PATTERN”>
…
</FileMath> //使用正则表达式模式匹配进行访问控制
注意:正则表达式要启用正则表达式引擎,效率会降低很多。
URL路径
<Location “”>
….
</Location>
<LocationMath “”>
….
</LocationMath>
7、 <Directory> 中基于源地址实现访问控制:
Options
Indexs:指明的URL路径下不存在与定义的主页面资源相符的资源文件时,返回索引列表给用户
Followsymlinks:允许跟踪符号链接文件所指向的源文件
ExecCGI: 在该目录下允许执行CGI脚本。
SymLinksIfOwnerMatch: 当使用符号连接时,只有当符号连接的文件拥有者与实际文件的拥有者相同时才可以访问。
AllowOverride
与访问控制相关的那些指令可以放在.htaccess文件(每个目录下都可以有一个)中;
All :所有的都启用
None:none
Order 和allow 、deny
Order :定义生效次序;写在后面的表示默认法则
Allow from ,Deny from
来源地址
IP 地址
NetAddr (网络地址):
172.16
172.16.0.0
172.16.0.0/16
172.16.0.0/255.255.0.0
例如:
Order allow,deny
Deny form 172.16.100.2 拒绝172.16.100.2 访问
Allow from 172.16.0.0/16 允许172.16.0.0/16网络内的地址访问除100.2之外。
8、定义站点主页面
Directoryindex index.html index.html.var
9、定义路径别名
格式:
Alias /URL/ “/PATh/TO/SOMEDIR”
例如:
Alias /download/ “/apps/www/download”
http://www.mage.com/download/
在访问www.magedu.com/download 的时候访问的真实地址为/apps/www/download
10、设定默认字符集
AddDefaultCharset UTF-8
中文字符集 GBK, GBK2312, GBK18030
11、日志设定
日志类型:访问日志和错误日志
错误日志
ErrorLog logs/error_log 错误日志文件
LogLevel warn
Possible values include: debug, info, notice, warn, error, crit, alert, emerg. 8种
访问日志:
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
CustomLog logs/access_log (文件) combined (日志格式格式串名称)
官方文档地址:http://httpd.apache.org/docs/2.2/mod/mod_log_config.html
日志格式选项
%h :Remdo host 客户端主机(ip)
%l :客户端通过identid登录时使用的名称,一般为”-“号
%u:Remote user (from auth;may be bogus if return status(%s) is 401) 用户认证登录的名字;无登陆机制一般为”-”
%t time the request was received (standard English format) 收到客户端请求时的时间;
\“ : 显示引号本身,而不作引用符号
%r:first line of request 请求报文的首行;记录了此次请求的“方法“,”URL“,以及”协议版本“<motd> <url> <version>
%>s:响应状态码
%b :size of respons in bytes,excluding HTTP heards 响应报文的大小,单位是字节;不包括响应报文的http首部信息
%{Rsferer}i :请求报文中首部“referer“的值;即从那个页面的超链接跳转至当前页面的。
%{User-Agent}:请求报文中首部“User-Agent”的值;即发出请求的应用程序;
12、基于用户的访问控制
认证质询:
www-authrntlcate :响应码为401,拒绝客户端请求,并说明要求客户端提供帐号和密码;
认证:
Authorization :客户端用户填入帐号和密码后再次发送请求报文至服务器;认证通过时,则服务器发送响应的资源;
认证方式:两种
Basic :明文
Digest:消息摘要认证
安全域:需要用户认证后方能访问的路径;应该通过名称对其进行标识,以便于于告知用户认证的原因;
用户的帐号和密码存放于何处?
虚拟帐号:仅用于访问某服务时用到的认证标识
存储:
文本文件:
SQl数据库;
Lasp目录存储;
Basic认证配置示例:
定义安全域
<Directory “目录”> Options None AllowOverride None AuthType Basic AuthName “string” AuthUserFile “/path/to/httpd_user_passwd_file” Require user username1 username2…. </Directory>
允许账户文件中的所用用户
提供账号和密码存储(文本文件)
使用专用命令完成此类文件的创建及用户管理
Htpasswd [options] /path/to/httpd_passwd_file username
-c :自动创建此处指定的文件,因此,仅应该再次文件不存在时使用
-m:md5 格式加密
-s: sha格式加密
-D : 删除指定的用户
另外;基于组帐号进行认证;
创建用户帐号和组帐号文件;
组文件:每一行定义一个组,格式
Group_name:user1 user2
13、虚拟主机
站点标识:socket
Ip相同,但端口不同
Ip不同,但端口均为默认端口
FQDN不同:
请求报文首部
Host:www.mage.com
三种实现方案:
基于ip:
为每个虚拟主机准备至少一个ip地址:
基于port :
为每个虚拟主机使用至少一个独立的port
基于FQDN
为每个虚拟主机使用至少一个FQDN
注意:一般虚拟机不要与中心主机混用;因此,要使用虚拟主机,得先今夜main主控;
禁用方法:注释中心主机的DocumentRoot 指令即可;
虚拟主机的配置方法:
<VirtualHost ip:port>
ServerName FQDN
DocumentRoot “”
</VirtualHost>
其他可用指令:
ServerAlias :虚拟主机的别名;可多次使用
ErrorLog :指定错误日志文件
CustomLog:指定访问日志文件
<Directory>
…
</Directory>
Alias
基于ip的虚拟主机示例:
<VirtualHost 172.16.250.90:80> DocumentRoot /apps/www/html/ ServerName www.linuxinfo.com ErrorLog logs/www.linuxinfo-error_log Customlog logs/www.linuxinfo-access_log common </VirtualHost> <VirtualHost 172.16.76.20:80> DocumentRoot /apps/bbs/html/ ServerName bbs.linuxinfo.com ErrorLog logs/bbs.linuxinfo-error_log Customlog logs/bbs.linuxinfo-access_log common </VirtualHost>
基于端口的示例:
<VirtualHost 172.16.250.90:80> DocumentRoot /apps/www/html/ ServerName www.linuxinfo.com ErrorLog logs/www.linuxinfo-error_log Customlog logs/www.linuxinfo-access_log common </VirtualHost> <VirtualHost 172.16.250.90:8080> DocumentRoot /apps/bbs/html/ ServerName bbs.linuxinfo.com ErrorLog logs/bbs.linuxinfo-error_log Customlog logs/bbs.linuxinfo-access_log common </VirtualHost>
基于FQDN (域名)示例:
NameVirtualHost 172.16.250.90:80 (Centos 7 配置FQSN虚拟主机时不在需要此指令) <VirtualHost 172.16.250.90:80> DocumentRoot /apps/www/html/ ServerName www.linuxinfo.top ErrorLog logs/www.linuxinfo-error_log Customlog logs/www.linuxinfo-access_log common </VirtualHost> <VirtualHost 172.16.250.90:80> DocumentRoot /apps/bbs/html/ ServerName bbs.linuxinfo.top ErrorLog logs/bbs.linuxinfo-error_log Customlog logs/bbs.linuxinfo-access_log common </VirtualHost>
14、Status页面 (服务器状态)
http.conf 配置文件(默认是开启的)
LoadModule status_module modules/mod_status.so
关于status的配置(在httpd.conf文件内,默认注释)
#<Location /server-status>
# SetHandler server-status
# Order deny,allow
# Deny from all
# Allow from .example.com
#</Location>
15、curl命令
Curl是基于URL语法在命令行方式下工作的文件传输工具,它支持FTP、FTPS、HTTP、HTTPS、GORHER、TELNET、DICT、FILE、及LDAP等协议。Curl支持https认证,并且支持http的POST、PUT等方法,FTP上传、kerberos认证、HTTP认证、HTTP上传、代理服务器,cookies、用户名/和密码认证,下载文件断点续传,上载文件断点续传,http代理服务器管道(porxy tunneling),甚至它还支持ipv6,sock5代理服务器,通过http代理服务器上传文件到ftp服务器等等,功能十分强大。
Curl [options] [URL..]
常用参数
curl命令参数很多,这里只列出我曾经用过、特别是在shell脚本中用到过的那些。
-v/--verbose 小写的v参数,用于打印更多信息,包括发送的请求信息,这在调试脚本是特别有用。
-m/--max-time <seconds> 指定处理的最大时长
-H/--header <header> 指定请求头参数
-s/--slient 减少输出的信息,比如进度
--connect-timeout <seconds> 指定尝试连接的最大时长
-x/--proxy <proxyhost[:port]> 指定代理服务器地址和端口,端口默认为1080
-T/--upload-file <file> 指定上传文件路径
-o/--output <file> 指定输出文件名称
-d/--data/--data-ascii <data> 指定POST的内容
--retry <num> 指定重试次数
-e/--referer <URL> 指定引用地址
-I/--head 仅返回头部信息,使用HEAD请求
-u/--user<user:[password]>设置服务器的用户和密码
-0/http1.0使用http1.0版本
Elinks 命令行纯文本浏览器
Elinks [options] [URL..]
-dump 不进入交互模式,而直接将URL的内容输出至标准输出;
16、user/group
指定以那个用户的身份运行httpd服务进程;
User apache
Group apache
17、使用mod_deflate模块压缩页面优化传输速度
使用场景:
1、 节约带阔,额外消耗CPU;同时,可能有些较老浏览器不支持。
2、压缩适用于压缩的资源,例如文件:
#设置一个输出过滤器 SetOutputFilter DEFLATE #根据内容类型来执行过滤,将以下格式添加到输出过滤器上 # Restrict compression to these MIME types AddOutputFilterByType DEFLATE text/plain AddOutputFilterByType DEFLATE text/html AddOutputFilterByType DEFLATE application/xhtml+xml AddOutputFilterByType DEFLATE application/x-javascript AddOutputFilterByType DEFLATE text/javascript AddOutputFilterByType DEFLATE text/css #指明压缩级别,压缩级别越高,压缩比越大,就越耗费CPU #Level of compression(Highest 9 – Lowest 1) DeflateCompressionLevel 9 #排除以下浏览器不做压缩 BrowserMatch "^Mozilla/2" no-gzip
18、HTTPS协议https
Http Over SSL,TCP 443端口
HTTPS是二进制协议
HTTPS协议介绍
SSL协议会话过程
(1)、客户端发送可供选择的加密方式,并向服务器请求证书;
(2)、服务器端发送证书以及选定的加密方式给客户端;
(3)、客户端取得证书并进行证书验证,如果信任给其发证书的CA,则:
验证证书来源的合法性:用CA的公钥解密证书上的签名
验证证书内容合法性:完整性验证
检查证书的有效期
检查证书是否被吊销
证书中拥有者的名字,与访问目的主机要一致
(4)、客户端生产临时会话密钥(对称密钥),并使用服务器端的公钥加密此数据发送给服务器,完成密钥交换。
(5)、服务用此密钥加密用户请求的资源,响应给客户端
注意:SSL会话是基于IP地址所创建,所以单IP的主机上,仅可以使用一个Https虚拟主机。
配置httpd支持https
示例,主要步骤:
为服务器申请测试证书
创建私有CA
在服务器创建证书签署请求
CA签证
配置Httpd支持SSL及使用的证书
测试基于Https访问相应的主机
https实现过程 [[email protected] CA]# cd /etc/pki/CA/ [[email protected] CA]# (umask 077;openssl genrsa -out private/cakey.pem 2048) Generating RSA private key, 2048 bit long modulus ..........................................................................+++ ...........................+++ e is 65537 (0x10001) [[email protected] CA]# ll private/ total 4 -rw-------. 1 root root 1679 Nov 1 04:37 cakey.pem [[email protected] CA]# openssl req -new -x509 -key private/cakey.pem -out cacert.pem [[email protected] CA]# touch serial index.txt [[email protected] CA]# echo 01 > serial Httpd添加Https站点 #在Httpd服务器端生成证书签署请求 [[email protected] CA]# cd /etc/httpd/ [[email protected] httpd]# mkdir ssl [[email protected] httpd]# cd ssl/ [[email protected] ssl]# (umask 077;openssl genrsa -out httpd.key 1024) [[email protected] ssl]# openssl req -new -key httpd.key -out httpd.csr [[email protected] ssl]# ls httpd.csr httpd.key //此时可以将证书签署请求发送给CA #CA签署请求 [[email protected] CA]# openssl ca -in /etc/httpd/ssl/httpd.csr -out certs/httpd.crt #将生成的证书发送给Httpd服务器 [[email protected] CA]# ll /etc/httpd/ssl/ -rw-r--r--. 1 root root 3866 Nov 1 04:52 httpd.crt Httpd添加Https站点 #Httpd安装mod_ssl模块 yum install mod_ssl httpd -M | grep ssl Syntax OK ssl_module (shared) #修改/etc/httpd/conf.d/ssl.conf配置文件 DocumentRoot "/var/www/html" ServerName www.magedu.com SSLCertificateFile /etc/httpd/ssl/httpd.crt SSLCertificateKeyFile /etc/httpd/ssl/httpd.key #重启服务,测试https是否正常访问 测试基于https访问相应的主机 #openssl s_client [-connect host:port] [-cert filename] [-C Apath directory] [-CA file fielname
19、httpd自带的工具程序
Httpasswd
basic认证基于文件实现时,用到的账号文件生成工具
Apachectl
httpd自带的服务控制脚本,支持start和stop
Apxs
由httpd-devel包提供,扩展Httpd使用第三方模块的工具
Rotatelogs
日志滚动工具
Suexec
访问某些有特殊权限配置的资源,临时切换至指定用户身份运行
Ab压测工具
Apache bench 压测工具,除ab外,还有webbench,http_load等命令行工具,
Jmeter, Loadrunner等图形界面工具。网易TCPCOPY,复制生产环境中真实请求,并
保存下来
-n 总请求数
-c 模拟的并行数
-k 以持久连接模式测试
本文出自 “秋季” 博客,请务必保留此出处http://lxlxlx.blog.51cto.com/3363989/1885322
以上是关于HTTPD服务详解的主要内容,如果未能解决你的问题,请参考以下文章