HTTP介绍配置
httpd的特性 高度模块化:core+modules dso:Dynamic Shared Object(动态共享对象) MPM:多路处理模块(实现多种I/O模型) prefork: 多进程模型,每个进程响应一个请求。(一个主进程,负责生成多个子进程。每个子进程处理用户请求。假若没有用户请求,也会生成一定数量的空闲进程) 主进程master负责监听端口、子进程负责处理master传过来的用户请求 worker 多进程多线程(一个进程生成多个线程)。一个线程响应一个请求 event 事件驱动,一个线程响应多个请求
环境 1、CentOS6 2、通过rpm安装的httpd 配置文件 /etc/httpd/conf/httpd.conf /etc/httpd/conf.d/*.conf 服务脚本 /etc/init.d/httpd 脚本配置文件/etc/sysconfig/httpd 主程序文件(默认是prefork模式) /usr/sbin/httpd /usr/sbin/httpd.event /usr/sbin/httpd.worker 日志文件 /var/log/httpd access_log:访问日志 error_log:错误日志 站点文档目录 /var/www/html 模块文件路径 /usr/lib64/httpd/modules
常用配置 1、Listen -->>修改监听的IP和端口,Listen可以出现多次 2、持久连接(http1.1默认) -->>KeepAlive on|off Persisten Connection :连接建立,每个资源获取完成后不会断开 如何断开 数量限制:100个(获取到100个资源,断开) -->>MaxKeepAliveRequests 时间配置 5s -->>KeepAliveTimeout 副作用:对并发较大的服务器,持久连接功能会使有些请求不到响应 3、MPM,多路处理模块(httpd -l 查看当前是以什么模式运行的) ...... httpd-2.2不支持同时编译多个模块,只能编译时选定一个 查看静态和动态加载的模块 -->> httpd -M 4、DSO 配置指令实现模块加载 LoadModule <mod_name><mod_path> 5、定义网站"根"路径 DocumentRoot -->>指向的路径为URL路径的起始位置 DocumentRoot "/var/www/html" -->>http://host:port/index.html 6、站点访问控制 文件系统控制 <Directory "/var/www/html"> #对整个目录控制 <File ""> #对单个文件进行控制 <FileMatch ""> #不建议,耗资源 URL控制 <Location ""> 访问控制机制: 基于来源地址 基于账号 7、Directory中 ‘基于来源地址’ 进行控制 a.Options None:全部不启用 Indexes:索引,要关 FollowSymlinks:允许访问符号链接到的文件 b.AllowOverride:None c. Order allow,deny #相当于白名单 Order deny,allow #黑名单 Allow from .. #IP|NetAddr Deny from .. 基于用户的访问控制 认证类型: a、basic #明文 1、定义安全域 <Directory "/var/www/htdocs"> AuthName "This Domain required user and password" AuthType basic AuthUserFile "/etc/httpd/conf/.htpasswd" #需要htpasswd生成 require valid-user 2、提供账号和密码存储 htpasswd -c -m /etc/httpd/conf/.htpasswd user01 htpasswd -m /etc/httpd/conf/.htpasswd user02 更多参考点这里 b、digest #加密 8、定义默认主页面 DirectoryIndex index.html index.html.var 9、日志定义 错误日志 ErrorLog logs/error_log LogLevel warn 访问日志 CustomLog logs/access_log combined LogFormat "%h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i"" combined 10、路径别名 Alias /wps/ "/var/www/html/bbs/" #访问wps的首页,实际访问的路径是bbs的路径 11、设定默认字符集 AddDefaultCharset UTF-8 12、虚拟主机,三种实现方案 基于IP 基于port 基于hostname **常用 注意:使用虚拟主机,先禁用中心主机,即DocumentRoot 每个虚拟主机都有专用配置 <VirtualHost "IP:PORT"> ServerName DocumentRoot ServerAlias ErrorLog CustomLog 13、内置的status页面 SetHandler server-status Order deny,allow Deny from all Allow from .example.com
##################################################################################### httpd日志格式 LogFormat "%h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i"" combined %h:客户端IP地址 %l:- 表示没有,为空 %u:认证的用户 %t:请求到达服务器的时间 %r:请求报文的首行信息(method、协议版本) %>s:请求状态代码(200、302、403、404、500) %b:响应报文的大小,大小为空,用 - 表示 %{Referer}i:请求报文中'referer'首部的值 %{User-Agent}i:发出请求用到的应用程序,如浏览器
更多详细介绍 GO