zoukankan      html  css  js  c++  java
  • httpd常见配置

    httpd常见配置

    配置文件

    /etc/httpd/conf/httpd.conf     主配置文件

    /etc/httpd/conf.d/*.conf     辅助配置文件

    配置文件语法检查及重新加载配置文件

    [root@node1 conf]$ httpd -t
    Syntax OK
    [root@node1 conf]$ service httpd reload
    重新载入 httpd:

    修改监听的IP和Port

    Listen  [IP:] PORT  [PROTOCOL]
    IP     本机的IP,本机可能使用多个网卡,每个网卡可能使用多个IP,故而可以指定特定IP,不指定,默认为监听所有IP
    PORT    端口号,不可省略
    PROTOCOL 特定协议,例如 https

    注:Listen指令在同一文件中,如果需要监听多个目标,Listen可以出现多次

    服务器根目录

    DocumentRoot "/var/www/html"

    ServerName www.example.com:80 # 服务器名称

    DirectoryIndex index.html  index.html.var # 站点主页面

    AddDefaultCharset UTF-8     # 默认字符集

    Alias /icons/ "/var/www/icons/" # 路径别名

    持久化配置

    KeepAlive Off | On                 # 是否开启长连接
    
    MaxKeepAliveRequests 100   # 保持长连接最大个数
    
    KeepAliveTimeout 15            #  单个连接最长连接时间

    动态加载模块

    LoadModule <mod_name> <mod_path>
    <mod_name> 模块名称    
    <mod_path> 模块路径,支持使用相对路径,相对于ServerRoot  /etc/httpd

    MPM(多路处理模块)配置

    查看

     

    httpd -l      # 查看静态模块  
    httpd -M    # 查看动态加载的模块    

     

    更换

     

    CentOS 6
    /etc/sysconfig/httpd
    # HTTPD=/usr/sbin/httpd.worker    # 注释表示使用默认方式prefork工作,否则表示使用worker方式工作
    
    CentOS7
    /etc/httpd/conf.modules.d/00-mpm.conf
    LoadModule mpm_worker_module modules/mod_mpm_worker.so    
    # 注释或打开相关代码

     

    prefork常用配置

     

    <IfModule prefork.c>
    StartServers       8      #  起始开启的子进程数
    MinSpareServers    5       #  最小空闲子进程数 
    MaxSpareServers   20       #  最大空闲子进程数
    ServerLimit      256       #  最大的进程数
    MaxClients       256       #  最大的请求并发数
    MaxRequestsPerChild  4000  #  每个子进程最多能处理的请求数
    </IfModule>

     

    work常用配置

     

    <IfModule worker.c>
    StartServers         4    
    MaxClients         300     # 最大的请求并发数目
    MinSpareThreads     25   
    MaxSpareThreads     75
    ThreadsPerChild     25     # 每个子进程能同时创建的的线程数目
    MaxRequestsPerChild  0        # 每个进程能处理的最大请求数目 
    </IfModule>

     

    日志配置

    ErrorLog logs/error_log     # 错误日志目录
        
    LogLevel warn           # 日志记录等级
    
    LogFormat "%h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i"" combined   # 日志格式定义

    %h:客户端IP地址;
    %l:Remote User, 通常为一个减号(“-”);
    %u:Remote user (from auth; may be bogus if return status (%s) is 401);非为登录访问时,其为一个减号;
    %t:服务器收到请求时的时间;
    %r:First line of request,即表示请求报文的首行;记录了此次请求的“方法”,“URL”以及协议版本;
    %>s:响应状态码;
    %b:响应报文的大小,单位是字节;不包括响应报文的http首部;
    %{Referer}i:请求报文中首部“referer”的值;即从哪个页面中的超链接跳转至当前页面的;
    %{User-Agent}i:请求报文中首部“User-Agent”的值;即发出请求的应用程序;

    站点访问控制可分为两类,基于文件路径控制和基于URL路径控制。

    基于文件路径访问控制

    <Directory "DocuRoot">
    ...
    </Directory "DocuRoot">
    <FILE "">
    ...
    </FILE "">
    
    <FileMatch "PATTERN">
    ...
    </FileMatch "PATTERN">

    基于URL路径访问控制

    <Location "">
    ... </Location ""> <LocationMatch "">
    ... </LocationMatch "">

    常见选项

    Option 
        Indexes     # 访问的url不存在时,返回父路径的索引列表        
        Includes   
        FollowSymLinks    # 允许跟踪链接文件所指向的文件
        SymLinksifOwnerMatch  # 仅允许跟踪链接文件属主
        ExecCGI               #  支持CGI脚本
        MultiViews           
        All        所有选项,除了 MultiViews
        None    不支持上述选项

    AllowOverride no | yes 是否允许子目录重载特性

     

    黑名单(白名单)

    Order allow, deny
    
    [ Allow | Deny ] from
        all
        example.org
        10.1.2.3
        10  172.20

     

    基于用户的访问控制

    用户认证类型
      基本认证:Basic,明文发送
      摘要认证:digest
     
    虚拟用户:仅用于访问某服务或获取某资源的凭证;
     
    账号和密码的存储机制
      文本文件:.htpasswd
      SQL数据库
      dbm:数据库引擎,提供API
      ldap:
     
    配置
    <Directory />
            Options none 
            AllowOverride AuthConfig     
            AuthType Basic     # 明文发送
            AuthName "admin area"   # 允许访问的用户
            AuthBasicProvider file   
            AuthUserFile /etc/httpd/conf/.htpasswd
            Require valid-user     # 文件中所有用户均可访问
    Require group GROUP # 指定组
         AuthGroupFile GROUP_FILE # 指定组口令文件
    </Directory>

    生成认证文件.htpasswd

    htpasswd [option] passwdfile username
        选项:
        -c:创建一个passwdfile,如果passwdfile已经存在,那么它会重新写入并删除原有内容
        -m:以md5的格式编码存储用户的密码信息
        -s:sha1加密用户密码;
        -D:删除指定用户        

    访问指定网页

    [root@node1 conf]$ curl http://www.baidu.com
    <!DOCTYPE html>
    <!--STATUS OK--><html> <head><meta http-equiv=content-type content=text/html;charset=utf-8><meta http-equiv=X-UA-Compatible content=IE=Edge><meta content=always name=referrer><link rel=stylesheet type=text/css href=http://s1.bdstatic.com/r/www/cache/bdorz/baidu.min.css><title>百度一下,你就知道</title></head> <body link=#0000cc> <div id=wrapper> <div id=head> <div class=head_wrapper> <div class=s_form> <div class=s_form_wrapper> <div id=lg> <img hidefocus=true src=//www.baidu.com/img/bd_logo1.png 
    ...
    
    href=http://www.baidu.com/duty/>使用百度前必读</a>&nbsp; <a href=http://jianyi.baidu.com/ class=cp-feedback>意见反馈</a>&nbsp;京ICP证030173号&nbsp; <img src=//www.baidu.com/img/gs.gif> </p> </div> </div> </div> </body> </html>
  • 相关阅读:
    前端周刊第一期
    Java CAS 原理详解
    【转载】Linux系统调用SYSCALL_DEFINE详解
    简述伪共享和缓存一致性MESI
    exchange发邮件
    Flutter屏幕适配(自适应)方案
    dart类初始化 future方案
    windows下postgresql自启动
    How can I call an async method in StatelessWidget.build method?
    实战分层架构
  • 原文地址:https://www.cnblogs.com/vathe/p/6907742.html
Copyright © 2011-2022 走看看