您的位置:首页 > 理论基础 > 计算机网络

httpd-2.2相关知识总结

2015-09-20 12:35 525 查看
一、CentOS 6中httpd相关介绍
系统所带rpm包为:httpd-2.2.15-39.el6.centos.x86_64
配置文件
/etc/httpd/conf/httpd.conf
/etc/httpd/conf.d/*.conf
[root@localhost ~]# grep "Section" /etc/httpd/conf/httpd.conf
### Section 1: Global Environment //全局环境设置
### Section 2: 'Main' server configuration //中心服务器配置
### Section 3: Virtual Hosts //虚拟主机相关配置
服务脚本:
/etc/rc.d/init.d/httpd
脚本的配置文件 : /etc/sysconfig/httpd 主程序文件: /usr/sbin/httpd.* 默认使用prefork ,可以在服务脚本的配置文件中切换使用 日志文件目录: /var/log/httpd access_log : 访问日志
error_log : 错误日志,记录web服务器启动停止,运行过程中的错误信息
站点文档目录: /var/www/html
二、httpd配置文件的相关配置介绍
2.1、修改监听的服务端口 Listen [ip:]PORT
2.2、持久连接(长连接)连接建立,每个资源获取完成后不会断开连接,而是继续等待其他的请求完成如何断开持久连接?可以通过数量限制和时间限制来实现 KeepAlive on | off MaxKeepAliveRequests : 持久连接时最大请求资源数 KeepAliveTimeout :持久连接的时间限制
2.3、MPM-多路处理模块httpd-2.2 不支持同时编译多个模块,只能在编译时选定一个,rpm安装的包提供三个二进制程序文件,分别用于实现对不同MPM机制的支持,确认方法:ps aux | grep httpd
/usr/sbin/httpd #prefork模型(默认模型)
/usr/sbin/httpd.event #event事件驱动模型
/usr/sbin/httpd.worker #worker模型

2.4、DSO(动态共享对象)
配置指令实现模块加载 LoadModule <mod_name> <mod_path>
模块路径可使用相对地址
相对于ServerRoot(/etc/httpd)指向的路径
2.5、DocumentRoot
(在主服务器段设置)
DocumentRoot指向的路径为URL路径的起始位置
2.6、站点访问控制文件系统路径:站点目录及其子目录
<Directory " "> </Directory>

URL路径:网页
<Location " "> </Location>

访问控制机制: 基于来源地址--见2.7 基于账号--见2.8
2.7、基于来源地址的访问控制(1)Options对于此目录资源的访问属性方式
Indexes : 索引
FollowSymLinks : 跟踪符号连接指定的文件,无论这个文件在什么地方都运行访问其原文件
None : 不支持任何选项 (安全做法)

(2)Order :检查次序
Order allow,deny(默认机制) 白名单
Order deny,allow(默认机制) 黑名单
Allow from
Deny from
2.8、基于账号
认证质询: WWW-Authenticate:响应码为401,拒绝客户端请求,并说明要求客户提供账号和密码

认证:Authorization:客户端用户填入账号和密码后再次发送请求报文,认证通过,服务器发送响应的资源
认证类型:
basic:明文
digest:消息摘要;经过md5加密
2.9、basic认证定义格式
(1)基于用户
<Directory " PATH">
Options None
AllowOverride None
AuthType Basic
AuthName "随便字符串" # 告诉用户为什么要弹出对话框
AuthUserFile "/PATH/TO/HTTPD_USER_PASSWD_FILE" Require user username1 username2
</Directory> <Location "" >
......... </Location>
允许账号文件中的所有用户登录访问:Require valid-user
(2)基于组<Directory " PATH">
Options None
AllowOverride None
AuthType Basic
AuthName "随便字符串" # 告诉用户为什么要弹出对话框
AuthUserFile "/PATH/TO/HTTPD_USER_PASSWD_FILE" AuthGroupFile "/PATH/TO/HTTPD_GROUP_PASSWD_FILE" Require group group1 group2
</Directory> <Location "" >
......... </Location>

(3)添加用户的方法-htpasswd命令 第一次创建的时候用-c ; # htpasswd -c -m /etc/httpd/conf.d/.htpasswd user1 加第2个的时候要给-c选项去掉 # htpasswd -m /etc/httpd/conf.d/.htpasswd user2 -D 删除用户的 -m:md5加密的用户密码
-s:sha1加密用户密码
2.10、定义默认主页面DirectoryIndex index.html index.html.var
为空,将会给所有页面都显示
2.11、httpd日志设定
错误日志 ErrorLog logs/error_log LogLevel 日志级别: debug, info, notice, warn, error, crit, alert, emerg. 访问日志 CustomLog logs/access_log combined
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined 组合格式 %h 远程主机,客户端的ip地址
%l 远程登录的用户名,不是表单登录,而是使用mod_identity模块登录使用的
%u 认证时候输入的用户名
%t 服务器收到请求的时间
%r:请求报文的首行信息 (method url version)
%>s: 响应状态码
%b:响应报文的大小 单位为字节,不包含响应报文首部 %{Referer}i:请求报文referer首部的值 ;referer:到达当前页面的访问入口,即从哪儿个页面的超链接跳转 %{User-Agent}i:请求报文当中“User-Agent”首部的值;及发出请求用到的应用程序;用户代理(浏览器类型)
2.12、设定默认字符集
AddDefaultCharset UTF-8 | GBK | GB2312 | GB18030

2.13、虚拟主机设定方法虚拟主机的3种类型:1、基于ip : 为每个虚拟主机准备至少一个ip地址 2、 基于port : Listen 8080
为每个虚拟主机装备至少一个专用端口,实践中很少使用
3、基于hostname ; NameVirtualHost 对应ip地址:端口
为每个虚拟主机准备至少一个专用hostname
可混合使用上述三种方式任意方式
注意:一般虚拟主机莫与中心主机混用,所以要使用虚拟主机,先禁用中心主机

每个虚拟主机都有专用配置:
< VirtualHost "IP:PORT" >
ServerName
DocumentRoot ""
ServerAlias : 虚拟主机的别名
ErrorLog
CustomLog
<Directory ""> 可设置访问控制

</Directory> </VirtualHost >
2.14、内置的status页面 server-status定义 #ExtendedStatus On <Location /server-status> SetHandler server-status </Location>
2.15、httpd常用的status
1xx:100-101, 信息提示;2xx:200-206, 成功3xx:300-305, 重定向4xx:400-415, 错误类信息,客户端错误5xx:500-505, 错误类信息,服务器端错误
常用的状态码:200: 成功,请求的所有数据通过响应报文的entity-body部分发送;OK301: 请求的URL指向的资源已经被删除;但在响应报文中通过首部Location指明了资源现在所处的新位置;Moved Permanently 永久重定向 302: 与301相似,但在响应报文中通过Location指明资源现在所处临时新位置; Found304: 客户端发出了条件式请求,但服务器上的资源未曾发生改变,则通过响应此响应状态码通知客户端;Not Modified401: 需要输入账号和密码认证方能访问资源;Unauthorized403: 请求被禁止;Forbidden404: 服务器无法找到客户端请求的资源;Not Found500: 服务器内部错误;Internal Server Error502: 代理服务器从后端服务器收到了一条伪响应;Bad Gateway (网关配置错误)
三、https
tcp 443配置httpd支持https的方法:(1) 为服务器申请数字证书;测试:通过私建CA发证书(a) 创建私有CA(b) 在服务器创建证书签署请求(c) CA签证(2) 配置httpd支持使用ssl,及使用的证书;# yum -y install mod_ssl # httpd -M | grep ssl
配置文件:/etc/httpd/conf.d/ssl.confDocumentRoot #URL起始位置,及虚拟主机的网站目录ServerName # 主机名SSLCertificateFile # 证书文件SSLCertificateKeyFile # 证书文件所对应的私钥文件(3) 测试基于https访问相应的主机; # openssl s_client [-connect host:port] -CApath [-CAfile filename]

本文出自 “bengbengtu” 博客,请务必保留此出处http://bengbengtu.blog.51cto.com/9505633/1696486
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: