标签:httpd
MPM:多处理模块 worker,event(事件驱动模型,单线程响应多请求),prefork
http://httpd.apache.org/docs/2.4/mpm.html
DSO机制:动态共享对象,可使用LoadModule动态装载模块,无需重启服务
以CentOS 6.5为例http的配置文件,一般默认路径在/etc/httpd/conf/httpd.conf中
主要有三段配置
Section 1: Global Environment
全局配置及虚拟主机共享参数
Section 2: ‘Main‘ server configuration
主服务器配置
Section 3: Virtual Hosts
虚拟主机配置
注:主服务器和虚拟主机一般不同时使用,默认启动主服务器。
(参数的值需要区分大小写)
参数:
Section 1: Global Environment | |
ServerTokens OS | 显示浏览器系统信息等,一般不启用 |
ServerRoot "/etc/httpd" | 绝对路径定义 |
PidFile run/httpd.pid | 相对路径定义 |
KeepAlive On | 是否支持持久链接 |
MaxKeepAliveRequests 100 | 持久链接最大请求个数 |
KeepAliveTimeout 15 (秒) | 持久链接持续时间 |
Timeout 60 | TCP链接超时时长 |
<IfModule prefork.c> | 多进程模型 |
StartServers 8 | 启动空闲进程个数 |
MinSpareServers 5 | 最少空闲进程数 |
MaxSpareServers 20 | 最大空闲进程数 |
ServerLimit 256 | 限制最大用户并发请求数 |
MaxClients 256 | 最大用户并发请求数 |
MaxRequestsPerChild 4000 | 每个子进程在生命周期内允许处理最大请求个数 |
作用:不让白白浪费资源用作进程请求 | |
<IfModule worker.c> | 多线程模型 |
StartServers 4 | 启动进程个数 |
MaxClients 300 | 最大用户并发请求数 |
MinSpareThreads 25 | 最小空闲线程数 |
MaxSpareThreads 75 | 最大空闲线程数 |
ThreadsPerchild 25 | 每个子进程启动多少线程 |
MaxRequestsPerChild 0 (不做限制) | 每个线程最大处理请求个数 |
Listen 80 (可指定多个,需重启服务) | 默认监听端口 |
LoadModule module_alias 路径/*.so | 指定装载模块 查看已装载模块 [root@SYJ ~]# httpd -D DUMP_MODULES |
Include conf.d/*.conf | 指定包含路径 |
User apache | 指定运行用户 |
Group apache | 指定运行组 |
Section 2: ‘Main‘ server configuration | |
ServerAdmin root@local.com | 管理员邮箱地址 |
ServerName local | 设定主机名(默认禁用,自动反解IP得到主机名) |
DocumentRoot "/var/www/html" | 指定站点根目录 |
DirectoryIndex | 定义默认主页 |
Errorlog logs/error_log | 指定错误日志 |
LogLevel warn (警告信息输出) (debug,info,notice,warn,error,crit,alert,emerg) | 日志级别 |
customLog logs/access_log LogFormat_name(要加上自定义格式名称) | 指定访问日志 |
LogFormat 变量 LogFormat_name 变量
注:保留引号需转义 | 以变量来定义日志格式,并设定名称 |
Alias 站点目录 映射目录 注:映射后原站点目录下文件将无法访问 | 路径别名:映射站点目录 |
Charset=UTF-8 | 字符集 |
查看httpd已编译MPM模块
[root@SYJ ~]# httpd -l Compiled in modules: core.c //核心模块 prefork.c //多进程模块 http_core.c //用到软件或协议时
站点路径访问控制
本地文件系统路径
<Directory ""> 可加~进行模式匹配
Options
Indexes 没主页显示下载列表索引(建议去掉)或者在前面用"-" 号关闭
FollowSymLinks 跟踪符号链接页面 (建议去掉)
...
AllowOverride 定义.htaccess隐藏文件,用来定义资源目录的访问控制
None 不启用
IP访问控制
Order allow,deny 先允许后拒绝
Allow from 192.168.0.0/16 先允许此网段IP访问而后拒绝所有IP
</Directory>
URL访问控制
<Location "">(可用正则,但性能下降)
</Location>
用户访问控制
文件访问控制-用户认证
<Directory "需控制的文件路径">
Options none 选项
AllowOverride AuthConfig 允许覆盖
AuthType Basic 认证类型
AuthName "admin" 认证名称
AuthBasicProvider file 认证提供路径
AuthUserfile /etc/httpd/conf/.htpasswd 用户账号密码信息
Require valid-user(所有用户) 认证用户
</Directory>
组认证
<Directory "需控制的文件路径">
Options none
AllowOverride AuthConfig
AuthType Basic
AuthName "admin"
AuthBasicProvider file
AuthUserFile /etc/httpd/conf/.htpasswd
AuthGroupFile /etc/httpd/conf/.htgroup
Require group GROUP_NAME 认证组名
</Directory>
htpasswd 提供认证文件
-c 第一次创建新文件
-m MD5编码用户密码
-D 删除指定用户
htpasswd -m /etc/httpd/conf/.htpasswd user01
vim /etc/httpd/conf/.htgroup
添加group: user01 user02
虚拟主机:一台Server提供多个站点,但需要取消主服务器的根路径,然后设置虚拟Server路径
#DocumentRoot "/var/www/html"
基于IP和端口
<VirtualHost 192.168.1.1:80>
ServerName www.61cto.com
DocumentRoot "/test/a"
ServerAlias 61cto
ErrorLog "路径"
CustomLog "路径"
</VirtualHost>
<VirtualHost 192.168.1.2:80>
ServerName www.61cto.com
DocumentRoot "/test/a"
ServerAlias 61cto
ErrorLog "路径"
CustomLog "路径"
</VirtualHost>
<VirtualHost 192.168.1.1:80>
ServerName www.61cto.com
DocumentRoot "/test/b"
ServerAlias 61cto
ErrorLog "路径"
CustomLog "路径"
</VirtualHost>
基于主机名
<VirtualHost *:80>
ServerName www.71cto.com
DocumentRoot "/test/c"
ServerAlias 61cto
ErrorLog "路径"
CustomLog "路径"
</VirtualHost>
配置文件语法检查:
httpd -t
service httpd configtest
本文出自 “Linux_MaYi” 博客,转载请与作者联系!
标签:httpd
原文地址:http://jlxmy.blog.51cto.com/8497132/1663703