zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    【javascript基础】【转】各浏览器对页面外部资源加载的策略
    【javascript基础】【转】javascript模块化、模块加载器初探
    【javascript基础】js线程机制【转】
    【css】【转】那些年我们一起清除过的浮动
    IL入门之旅(三)——Dump对象
    学习TPL(一)
    弱引用应用的注意点
    IL入门之旅(二)——动态包装
    学习TPL(二)
    IL之旅(前言)
  • 原文地址:https://www.cnblogs.com/LI-HONG-SHENG/p/8486547.html
Copyright © 2011-2022 走看看