Apache配置文件详解
来源:互联网 发布:java的jdk怎么安装 编辑:程序博客网 时间:2024/06/05 01:20
前言
- httpd
- 20世纪90年代初, 国家超级计算机应用中心NCSA开发
- 1995年开源社区发布apache(a patchy server)
- ASF: apache software foundation
- FSF: Free Software Foundation
- 特性:
- 高度模块化: core + modules
- DSO: Dynamic Shared Object 动态加/卸载
- MPM: multi-processing module多路处理模块
MPM工作模式
- prefork:多进程I/O模型,每个进程响应一个请求,默认模型
- 一个主进程:生成和回收n个子进程, 创建套接字,不响应请求多个子进程:工作work进程,每个子进程处理一个请求;系统初始时,预先生成多个空闲进程,等待请求,最大不超过1024个
- worker:复用的多进程I/O模型,多进程多线程, IIS使用此模型
- 一个主进程: 生成m个子进程,每个子进程负责生个n个线程,每个线程响应一个请求,并发响应请求: m*n
- event:事件驱动模型(worker模型的变种)
- 一个主进程:生成m个子进程,每个进程直接响应n个请求,并发响应请求: m*n,有专门的线程来管理这些keep-alive类型的线程,当有真实请求时, 将请求传递给服务线程,执行完毕后,又允许释放。这样增强了高并发场景下的请求处理能力 httpd-2.2: event 测试版,centos6默认httpd-2.4: event 稳定版, centos7默认
prefork模型性能还是可以的,一般应用场景足够,而且后面搭建LAMP时要使用这个模型,其他的不是太兼容。
Apache主要文件目录(centos6)
- 配置文件:
- /etc/httpd/conf/httpd.conf
- /etc/httpd/conf.d/*.conf
- 服务脚本: /etc/rc.d/init.d/httpd
- 脚本配置文件: /etc/sysconfig/httpd #可以设置httpd工作模式
- 站点网页文档根目录(默认目录,可以修改):
- /var/www/html
- 模块文件路径:
- /etc/httpd/modules
- /usr/lib64/httpd/modules
- 主程序文件:
- /usr/sbin/httpd
- /usr/sbin/httpd.worker
- /usr/sbin/httpd.event
- 主进程文件:
- /etc/httpd/run/httpd.pid
- 日志文件目录:
- /var/log/httpd/access_log: 访问日志
- /var/log/httpd/error_log:错误日志
- 帮助文档包:
- httpd-manual,可以使用yum安装,在本地浏览器查看
Apache配置文件(centos6)
- 主配置文件/etc/httpd/conf/httpd.conf
- 配置格式: directive value
- directive: 不区分字符大小写
- value: 为路径时,是否区分大小写,取决于文件系统
显示服务器版本信息
为了安全起见,建议使用: ServerTokens Prod,默认是 ServerTokens OS,如果注释会打印全部服务器信息修改监听的IP和端口
Listen [IP:]PORT
(1) 省略IP表示为0.0.0.0;
(2) Listen指令至少一个,可重复出现多次
Listen 80 #监听本机所有IP的80端口
Listen 8080
(3) 可以监听特定IP的端口,例如:192.168.6.6:80持久连接
Persistent Connection:连接建立,每个资源获取完成后不会断开连接,而是继续等待其它的请求完成,默认关闭持久连接
断开条件:
数量限制: 100
时间限制:以秒为单位, httpd-2.4 支持毫秒级
副作用:对并发访问量较大的服务器,持久连接功能会使用有些请求得不到响应
折衷:使用较短的持久连接时间
KeepAlive On|Off #KeepAliveTimeout 15MaxKeepAliveRequests 100
- prefrok 默认配置
<IfModule prefork.c>StartServers 8 #httpd服务开始时启动8个服务进程MinSpareServers 5 #提供服务期间保留5个空闲进程,如果数量不够会再开启相应进程MaxSpareServers 20 #最大空闲进程20个ServerLimit 256 最多进程数,最大20000MaxClients 256 最大并发MaxRequestsPerChild 4000 子进程最多能处理的请求数量。在处理MaxRequestsPerChild 个请求之后,子进程将会被父进程终止,这时候子进程占用的内存就会释放(为0时永远不释放)</IfModule>
- DSO: Dynamic Shared Object(加载动态模块配置)
模块文件路径可使用相对路径:相对于ServerRoot(默认/etc/httpd)
(1) 配置指定实现模块加载格式:LoadModule <mod_name> <mod_path>
示例:LoadModule auth_basic_module modules/mod_auth_basic.so
(2) 写到独立配置文件/etc/httpd/conf.d/name.conf里,name随便起
[root@centos6 ~]# vi /etc/httpd/conf.d/mod_dnssd.confLoadModule dnssd_module modules/mod_dnssd.so
- 站点访问控制常见机制
可基于两种机制指明对哪些资源进行何种访问控制
文件系统路径:
#如果要匹配正则表达式可以加上~,要么直接写路径(从DocumentRoot开始),路径里可以使用通配符<Directory ~ "PATTERN"> 或 <Directory "/path">...</Directory><Files ~ "PATTERN">...</Files><FilesMatch "PATTERN"> #后面直接加扩展正则表达式...</FilesMatch>
URL路径:
#URL里面可以使用通配符,如果要用正则表达式直接加 ~<Location URL-path|URL> 或 <Location ~ "PATTERN">...</Location><LocationMatch "PATTERN">...</LocationMatch>
<Directory>
中“基于源地址”实现访问控制
(1) Options:后跟1个或多个以空白字符分隔的选项列表
在选项前的+, - 表示增加或删除指定选项
常见选项:
Indexes:指明的URL路径下不存在与定义的主页面资源相符的资源文件时,返回索引列表给用户
FollowSymLinks:允许访问符号链接文件所指向的源文件
None:全部禁用
All: 全部允许
示例:<Directory /web/docs>Options Indexes FollowSymLinks</Directory><Directory /web/docs/spec>Options FollowSymLinks</Directory>
(2) AllowOverride
与访问控制相关的哪些指令可以放在指定目录下的.htaccess(由AccessFileName指定)文件中,覆盖之前的配置指令,没写默认为none
只对<directory>
语句有效
AllowOverride All: 所有指令都有效
AllowOverride None: .htaccess 文件无效
AllowOverride AuthConfig Indexes 除了AuthConfig和Indexes的其它指令都无法覆盖
(3) order和allow、 deny
order:定义生效次序;写在后面的表示默认访问权限,没有定义的按照默认权限生效
Order allow,deny
Order deny,allow
Allow from, Deny from
示例1:<Files "*.txt">order deny,allowdeny from 172.16.100.100allow from 172.16 #允许172.16网段或者写成172.16.0.0或者172.16.0.0/16都行</Files>#allow和deny规则冲突按照优先级高的来,写在后面的优先级高,结果允许172.16.100.100访问示例2:<Files "*.txt">order allow,denydeny from 172.16.100.100allow from 172.16</Files># 172.16网段除了100.100其他都允许
日志设定
(1) 日志类型:
访问日志
错误日志
(2) 错误日志:
ErrorLog logs/error_log
LogLevel warn
loglevel 可选值:
debug,info,notice,warn,error,crit,alert,emerg
(3) 访问日志:
定义日志格式: LogFormat format strings
LogFormat “%h %l %u %t \”%r\” %>s %b\”%{Referer}i\” \”%{User-Agent}i\”” combined
(4) 使用日志格式:
CustomLog logs/access_log combined设定默认字符集
AddDefaultCharset UTF-8
中文字符集: GBK, GB2312, GB18030定义路径别名
格式: Alias /URL/ “/PATH/”
示例:
alias /test/ /root/mytest/ #当访问http://192.168.6.6/test会显示/root/mytest目录下的内容,当然得设置对这个目录的Indexes权限,也可以通过/test目录访问/root/mytest下的文件
- APACHE配置文件中文详解
- apache配置文件详解
- APACHE配置文件中文详解
- APACHE配置文件中文详解
- Apache 配置文件详解
- APACHE配置文件中文详解
- Apache配置文件详解
- Apache 配置文件详解 【转】
- apache基本配置文件详解
- Apache配置文件详解
- Apache配置文件详解
- 【apache】主配置文件详解
- Linux下Apache 配置文件详解
- Linux下Apache 配置文件详解
- Linux下Apache配置文件详解
- Apache配置文件httpd.conf详解
- apache httpd.conf配置文件详解
- apache axis配置文件 wsdd详解
- Javaweb学习总结-(六)
- 欢迎使用CSDN-markdown编辑器
- bzoj 1014 [JSOI2008]火星人prefix 哈希+splay
- No Target Architecture
- 计算两个日期之间相差多少天,计算当前日期是星期几
- Apache配置文件详解
- 计蒜客 2017icpc南宁赛区 The Heaviest Non-decreasing Subsequence Problem 最长不递减子序列
- zookeeper 在ubuntu linux虚拟机上的安装
- Centos7下安装mysql
- Ubuntu Linux 永久挂载(mount)分区
- zynq学习笔记一:搭建linux交叉编译环境(ubuntu 17.04)
- 顺序表应用8:最大子段和之动态规划法
- Android eclipse工程的目录结构
- HNU OJ题库 1004E画图