httpd相关文件
配置文件
/etc/httpd/conf.d/*.conf
/etc/httpd/conf/httpd.conf
/etc/htpd/conf.modules.d/*.conf
日志文件目录
/etc/httpd/logs
模块文件目录
/etc/httpd/modules
启动脚本文件
/usr/lib/systemd/system/httpd.service
主进程
/usr/sbin/httpd
网页目录
/var/www/html
指令快速参考
http://httpd.apache.org/docs/2.4/ --> 指令快速参考
相关命令
-- 检查配置文件语法
httpd -t
-- 配置文件的有效配置
grep -Ev "^ *#|^$" /etc/httpd/conf/httpd.conf
-- 查看模块
httpd -M
httpd -l
-- 最多打开文件的个数
ulimit -a
open files (-n) 1024
-- 设置最多打开文件的个数
ulimit -n 66666
-- 网站测试工具
ab -c1000 -n 2000 http://192.168.43.17/m.txt //1000个并发,总共发起2000个
Requests per second: 71.02 [#/sec] (mean) 一秒钟能处理的请求数量
模块的启用与禁用
只需要将 /etc/httpd/conf.modules.d/下的文件内容注释与用户
#LoadModule auth_basic_module modules/mod_auth_basic.so
配置文件参数解释
监听端口
Listen 80
Listen 192.168.43.17:80
当前主机的信息
ServerTokens Major|Minor|Min[imal]|Prod[uctOnly]|OS|Full
按 F12-> Network -> 重新刷新 -> Name(IP) ->Headers -> Server:Apache/2.4.6 (CentOS)
持久连接
KeepAlive On|Off
KeepAliveTimeout 15
验证持久性
telnet 192.168.43.17 80
GET /index.html HTTP/1.1
host: 1.1.1.1 回车
MPM(Multi-Processing Modult)多路处理模块
prefork worker event
切换使用的MPM
/etc/httpd/conf.modules.d/00-mpm.conf
启用要启用的MPM相关的LoadModule指令即可
prefork 拿进程来提供用户服务,一个主进程带若干个子进程,每个子进程来响应单个用户的请求
worker 一个主进程带若干个子进程,每个子进程有若干个线程,以线程的方式给用户提供服务
event 是worker的变种,多了某个监控线程,当某个服务线程提供完服务,会交给监控线程
系统默认用的是prefork
注:centos6上用的模型切换只能重新编译,prefork,worker,event都是绑定在核心模块上的
prefork的配置
StartServers 8 //开启时默认的进程数为
MinSpareServers 5 //最小的空闲进程数为
MaxSpareServers 20 //最大的空闲进程数为
ServerLimit 256 //最多进程数,最大值为20000
MaxClients //最大进程连接数
// 每个子进程最大处理的请求数max,在处理max请求之后,子进程将会被父进程终止,这时子进程占用的内存会释放(0表示永远不释放)
MaxRequestsPerChild
worker的配置
ServerLimit
StartServers
MaxRequestWorkers
MinSpareThreads
MaxSpareThreads
ThreadsPerChild //每个子进程有多少个线程
网页存放的路径
DocumentRoot “path”
mkdir /data/html
DocumentRoot "/data/html"
<Directory "/data/html">
Require all granted
</Directory>
访问网站的子目录(子目录不在网站的根目录下,其实是一个软链接)
mkdir /app/sportsdir -pv
echo /app/sportsdir/index.html > /app/sportsdir/index.html
cd /data/html/
ln -s /app/sportsdir/ sports
[client]# curl http://192.168.43.7/sports/
/app/sportsdir/index.html
网站的默认主页面
<IfModule dir_module>
DirectoryIndex index.html index.php //优先找 index.html index.php 系统的默认页面
</IfModule>
默认的错误页面
/etc/httpd/conf.d/welcome.conf
<LocationMatch “^/+$”>
Options -Indexes
ErrorDocument 403 /.noindex.html
</LocationMatch>
站点访问控制
基于客户端来源地址
<Directory “/data/html”>
options Indexes FollowSymLinks //如果没有主页面或默认的主页面,就会显示这个目录下的列表
Require all granted
</Directory>
-- 将配置文件放在数据目录下命名为 .htaccess
vim /data/html/.htaccess
options Indexes FollowSymLinks
-- 以上内容要想生效必须在配置文件中指定
<Directory "/data/html">
Require all granted
AllowOverride All // .htaccess中的内容全部生效
AllowOverride Node // .htaccess中的内容全部无效
</Directory>
-- 文件系统路径
<Directory “/path">
...
</Directory>
<File “/path/file”>
...
</File>
<FileMatch "PATTERN">
...
</FileMatch>
URL路径:
<Location "">
...
</Location>
<LocationMatch "">
...
</LocationMatch>
-- *.com,cnf结尾的文件不允许访问
<Files "*.com">
Require all denied
</Files>
<Filesmatch "\.cnf$">
Require all denied
</Filesmatch>
Require all granted
Require all denied
Require ip IPADDR
Require not ip IPADDR
Require host HOSTNAME
Require not host HOSTNAME
HOSTNAME:
FQDN:特定主机
domin.tld:指定域名下的所有主机
<Directory "/data/html/beijing">
<requireall>
require all granted
require not ip 192.168.43.6
</requireall>
</Directory>
设置字符集
AddDefaultCharset UTF-8
ServerSignature on|off|email
当客户请求的网页并不存在时,服务器将产生错误文档,如果打开了ServerSignature选项,错误文档的最后一行将包含服务器的名字、Apache的版本等信息,如果不对外显示这些信息,就可以将这个参数设置为Off设置为Email,将显示ServerAdmin 的Email提示