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    # 保持长连接最大个数

KeepAliveTimeout             #  单个连接最长连接时间

动态加载模块

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

MPM(多路处理模块)配置

查看

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

更换

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

prefork常用配置

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

work常用配置

<IfModule worker.c>
StartServers
MaxClients 300     # 最大的请求并发数目
MinSpareThreads 25   
MaxSpareThreads
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
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-><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>

httpd常见配置的更多相关文章

  1. Httpd服务入门知识-Httpd服务常见配置案例之虚拟主机

    Httpd服务入门知识-Httpd服务常见配置案例之虚拟主机 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.虚拟主机实现方案 1>.Apache httpd 有三种实现虚 ...

  2. Httpd服务入门知识-Httpd服务常见配置案例之Apache的工作做状态status页面

    Httpd服务入门知识-Httpd服务常见配置案例之Apache的工作做状态status页面 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.status功能概述 status页 ...

  3. Httpd服务入门知识-Httpd服务常见配置案例之ServerSignature指令选项

    Httpd服务入门知识-Httpd服务常见配置案例之ServerSignature指令选项 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.ServerSignature指令概述 ...

  4. Httpd服务入门知识-Httpd服务常见配置案例之实现用户家目录的http共享

    Httpd服务入门知识-Httpd服务常见配置案例之实现用户家目录的http共享 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.实现用户家目录的http共享前提 在配置家目录共 ...

  5. Httpd服务入门知识-Httpd服务常见配置案例之定义路径别名

    Httpd服务入门知识-Httpd服务常见配置案例之定义路径别名 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.   一.创建测试数据 [root@node101.yinzhengj ...

  6. Httpd服务入门知识-Httpd服务常见配置案例之设定默认字符集

    Httpd服务入门知识-Httpd服务常见配置案例之设定默认字符集 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.查看生产环境中使用的字符集案例 1>.查看腾讯设置的默认 ...

  7. Httpd服务入门知识-Httpd服务常见配置案例之日志设定

    Httpd服务入门知识-Httpd服务常见配置案例之日志设定 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.日志类型 [root@node101.yinzhengjie.org ...

  8. Httpd服务入门知识-Httpd服务常见配置案例之基于客户端来源地址实现访问控制

    Httpd服务入门知识-Httpd服务常见配置案例之基于客户端来源地址实现访问控制 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Options  1>.OPTIONS指 ...

  9. Httpd服务入门知识-Httpd服务常见配置案例之基于用户账号实现访问控制

    Httpd服务入门知识-Httpd服务常见配置案例之基于用户账号实现访问控制 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.基于用户的访问控制概述 认证质询: WWW-Auth ...

随机推荐

  1. datagridview的一些设置

    1.自动调整列宽 this.dataGridView1.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMo ...

  2. MySql查看与修改auto_increment方法(转)

    add by zhj:  在创建表时,如果没有显式的指定AUTO_INCREMENT的值,那它默认是1 原文:https://blog.csdn.net/fdipzone/article/detail ...

  3. 17.4-uC/OS-III消息管理(任务消息队列使用)

    任务消息队列跟任务信号量一样,均隶属于某一个特定任务, 不需单独创建,任务在则在, 只有该任务才可以接收这个任务消息队列的消息,其他任务只能给这个任务消息队列发送消息, 却不能接收.任务消息队列与(普 ...

  4. mixpanel umeng talkingdata

    市面上可以比较容易的接触到的实时大数据用户行为分析系统有很多,比如国外有著名的Mixpanel.Localytics.Google,国内有TalkingData.这些公司都提供基于云的大数据分析系统, ...

  5. JMeter已传值但是提示为空

    登录时已经传值了,可是一直提示为空 解决:在在请求的url中拼接上参数

  6. 使用COE脚本绑定SQL Profile

    日常运维中,经常会遇到需要绑定好的执行计划的场景. 简单来说,就是将一个sql_id绑定好的plan_hash_value.如果没有使用到绑定变量,还需要把force_match设置为true. 用到 ...

  7. C#设计模式(8)——桥接模式(Bridge Pattern)(转)

    一.引言 这里以电视遥控器的一个例子来引出桥接模式解决的问题,首先,我们每个牌子的电视机都有一个遥控器,此时我们能想到的一个设计是——把遥控器做为一个抽象类,抽象类中提供遥控器的所有实现,其他具体电视 ...

  8. js语言精粹

    1.typeof null == “object” ,所以不能通过typeof ~ == "object",判断为对象   : a.判断为null的,直接~ === null:b. ...

  9. nodejs高并发大流量的设计实现,控制并发的三种方法

    nodejs高并发大流量的设计实现,控制并发的三种方法eventproxy.async.mapLimit.async.queue控制并发Node.js是建立在Google V8 JavaScript引 ...

  10. 在HTML5的 input:file 上传文件类型控制 遇到的问题

    1.input:file 属性的介绍  先瞅代码吧 <form> <input type="file" name="pic" accept=& ...