03、http介绍和配置

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

原文地址:https://www.cnblogs.com/LI-HONG-SHENG/p/8486547.html