httpd 2.2 实验小结
注:解决启动提示(无法找到完整域名 FQDN)
配置文件 servername www.a.com (随意指定)
技巧:set ignorecase vim搜索忽略大小写
/ServerName名称
注:进程存放位置/etc/httpd/run/httpd.pid
手动创建httpd.id也可以启动,一般自动会生成,不建议手动创建,注意权限/etc/httpd/run
注:查看软件版本
隐藏版本:配置文件ServerTokens prod(只显示apache)
也可以在调度器上实现隐藏版本
注释directive,默认为full
注:地址和端口绑定(默认本地所ip)
可以限制ip,只有通过此ip访问,限制内网访问
ss -ntl查看
service httpd reload 可能不行 start
无listen 将无法启动
查看帮助:安装httpd-manual
访问:ip://manual
注:测试持久连接
理解:持久连接:一个连接可以下载多个资源
配置:keepalive on 打开
KeepAliveTimeout 15 超时时间15s,建议不要太长
MaxKeepAliveRequests 100 最大连接数
后两行断开条件,一个满足即可
注:查看mpm模式及修改
三种模式:prefork, worker, event (试验阶段)
查看静态模块:httpd -l;修改后httpd.worker -l(下图)
修改模式:/etc/sysconfig/httpd文件 (上二图)
service httpd start
注:默认prefork模式8个子进程
解释:
StartServers 80 开启的进程数
MinSpareServers 5 最小预留5个进程,当服务忙时
MaxSpareServers 120 最多预留,当服务空闲时
ServerLimit 256 最多进程数, 最大20000
MaxClients 256 最大并发
MaxRequestsPerChild 4000
注:测试prefork.work处理数据能力
requests per second:观看这一项,每秒钟处理的平均值
preford work 差不多
选项:-c 并发连接数
-n 总的连接数
注:修改站点主目录
注意:两者同时开启,下面的会将上面的覆盖掉,下面的生效
检测语法:httpd -t
拓展: include conf.d/*.conf(/etc/httpd)
注:默认寻找目录index.html文件
访问:curl IP/bbs(/var/www/html/子目录),当子目录下没有index.html文件,会以列表方式显示
注意:如果在/var/www/html下没有index.html,会出现欢迎界面原因(图二)
删除此文件会显示站点目录结构,比较危险
寻找index.html原因:DirectoryIndex index.html index.html.var
注:站点访问控制
options 选项
followsymlinks 默认支持软连接,-表示去掉此功能
indexex 显示列表,默认不支持索引
none 都不支持,all相反
注意:子目录默认会继承主目录设置的权限
注:allowoverride all 说明.htacess里全生效 none文件失效(相当于此行被删除)
/app/site1/bbs/ 下.htaccess内容 options -indexex
注:所有的设置将在.htaccess里,allowoverride 这一行不写,.htaccess无效
主配置文件中有对.htaccess 拒绝访问
注:站定访问控制
此例中地址不冲突,比较简单
注:站定访问控制 (filesmatch 一般使用于正则表达式)
正则表达式写法来控制访问
注意:拒绝所有方法
order allow,deny(一条就可以)
deny from all
注:站定访问控制
设置主目录下目录的访问权限,只能特定主机访问
注:账号验证,限制用户(方式1)
验证方式:
basic :明文
digest :消息摘要认证,兼容性差
注意:require valid_user:允许数据库里所有用户访问
注:创建用户:
htpasswd [options] /PATH/HTTPD_PASSWD_FILE username
-c :自动创建文件,第一次创建使用
-m :md5 格式加密
-s: sha 格式加密
-D:删除用户
最后测试
注:针对组的访问控制,灵活
拓展:satisfy all |any
All :表示身份验证和ip都必须通过
Any:表示两个其中一个满足即可
注:查看服务器状态信息
默认没有开启,需要在主配置去掉注释
注:基于FQDN的虚拟主机
注意:httpd2.2 上必须加上最上面一行
注意:访问IP或者telnet方式host将会访问第一个站点