一、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部分发送;OK 301: 请求的URL指向的资源已经被删除;但在响应报文中通过首部Location指明了资源现在所处的新位置;Moved Permanently 永久重定向 302: 与301相似,但在响应报文中通过Location指明资源现在所处临时新位置; Found 304: 客户端发出了条件式请求,但服务器上的资源未曾发生改变,则通过响应此响应状态码通知客户端;Not Modified 401: 需要输入账号和密码认证方能访问资源;Unauthorized 403: 请求被禁止;Forbidden 404: 服务器无法找到客户端请求的资源;Not Found 500: 服务器内部错误;Internal Server Error 502: 代理服务器从后端服务器收到了一条伪响应;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.conf
DocumentRoot #URL起始位置,及虚拟主机的网站目录
ServerName # 主机名
SSLCertificateFile # 证书文件
SSLCertificateKeyFile # 证书文件所对应的私钥文件
(3) 测试基于https访问相应的主机;
# openssl s_client [-connect host:port] -CApath [-CAfile filename]
本文出自 “bengbengtu” 博客,请务必保留此出处http://bengbengtu.blog.51cto.com/9505633/1696486
原文地址:http://bengbengtu.blog.51cto.com/9505633/1696486