HTTPD常用配置
---------------------------------------------------------------------------------------------------------------------------------------------
一、http服务器
2、20世纪90年代初,美国国家超级计算机应用中心NCSA开发
1995年开源社区发布apache(a patchy server)
ASF: apache software foundation
DSO: Dynamic Shared Object 动态加/卸载
MPM:multi-processing module多路处理模块
1、prefork:多进程I/O模型,每个进程响应一个请求,默认模型,并发连接数达到10000,性能将明显下降
多个子进程:工作work进程,每个子进程处理一个请求;系统初始时,预先生成多个空闲进程,等待请求,最大不超过1024个
2、worker:复用的多进程I/O模型,多进程多线程,IIS使用此模型,如果一个子进程的某个线程有问题,那么该子进程的其它线程会被问题线程影响
一个主进程:生成m个子进程,每个子进程负责生个n个线程,每个线程响应一个请求,并发响应请求:m*n
一个主进程:生成m个子进程,每个进程直接响应n个请求,并发响应请求:m*n,有专门的线程来管理这些keep-alive类型的线程,当有真实请求时,将请求传递给服务线程,执行完毕后,又允许释放。这样增强了高并发场景下的请求处理能力
2、CGI:Common Gateway Interface,通用网关接口
3、反向代理:调度器,离服务器更近,根据实际情况把用户请求调度到真正提供后台服务的服务器
附:不支持正向代理。正向代理:帮助客户端访问远程主机,离客户机更近,主机想要访问某视频网站观看视频,区域内服务器收到用户机请求后去目标网站访问视频,并存储到缓存内,将缓存内的视频返回给用户,如果有其他用户也查看同样的网站视频,访问到的数据也将是区域内服务器的缓存,这样不仅节约了带宽,同时也提高了用户网络传输速度
该选项只是让apache知道自己的域名叫这个,让其他远程主机知道该域名还是需要DNS,此处搞个小
httpd-manual,yum install httpd-manual后加载服务,浏览器地址输入192.168.239.60/manual出现帮助说明
centos7工作模式/etc/sysconfig/httpd已无这些内容,修改某模式选项参数时直接在自建的/etc/httpd/conf.d/*.conf里写入即可,比如说
因此新建/etc/httpd/conf.d/test.conf,写入ServerTokens Prod,保存退出后重新加载生效
注:如果在/etc/httpd/conf.d/*.conf添加listen 8080,而不修改主配置文件,此时服务重启httpd将监听80端口和8080端口;
如果在主配置文件监听的是内部ip,listen 192.168.1.1:80,意味着ip绑定端口,只能ping 通192.168.1.1的内部ip登录,外部其它ip无法通过80端口登录
此实验仅适用于本主机,如果修改了其他主机hosts文件,也可以通过apache域名解析为ip
/etc/httpd/conf.modules.d/00-mpm.conf
模块目录:/etc/httpd/conf.modules.d/00-base.conf,修改后需要重启httpd服务
apache默认路径:/var/www/html/index.html
这是主文件配置,一般不建议修改主文件配置,建议在/etc/httpd/conf.d/目录下自己新建个*.conf文件,在里面写入内容进行修改。修改前可以输入grev -v "^[ ]*#" /etc/httpd/conf/httpd.conf,将过滤掉带注释行的说明内容,像这样
如果再修改哪一项将该项拷贝出,复制到/etc/httpd/conf.d/*.conf进行修改重启即可
综上所述,找到配置文件中的/var/www/html,复制到自建的配置文件
/etc/httpd/conf.d/welcome.html:这是httpd找不到主页时显示的Test123页面,将它改名后,页面为
修改配置使主页面不存在时可以查看网站下的目录索引:(设置权限的目录只出现在允许的主机上)
一般网站不开启此选项,不过类似阿里云的epel源网站会开启这选项
与访问控制相关的哪些指令可以放在指定目录下的.htaccess文件中,覆盖之前的配置指令
debug, info, notice, warn,error, crit, alert, emerg,crit, alert, emerg
定义日志格式:LogFormatformat strings
LogFormat"%h %l %u %{%Y-%m-%d %H:%M:%S}t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" testlog
CustomLoglogs/access_logtestlog
参考帮助:http://httpd.apache.org/docs/2.2/mod/mod_log_config.html#formats
%l 远程用户,启用mod_ident才有效,通常为减号“-”
%u 验证(basic,digest)远程用户,非登录访问时,为一个减号“-”
%r First line of request,即表示请求报文的首行;记录了此次请求的“方法”,“URL”以及协议版本
%b 响应报文的大小,单位是字节;不包括响应报文http首部
%{Referer}i请求报文中首部“referer”的值;即从哪个页面中的超链接跳转至当前页面的
%{User-Agent}i请求报文中首部“User-Agent”的值;即发出请求的应用程
AddDefaultCharsetUTF-8 此为默认值,自建的配置文件直接添加此项
如果只需要某个.htpasswd中某个用户访问,在require后写该用户名字即可,其他用户将无法访问
htpasswd -c /data/.htpasswd audi,第一次创建必须加-c
htpasswd /data/.htpasswd bmw,后续创建不能加-c,否则会覆盖
htpasswd /data/.htpasswd cadillac
-c 自动创建文件,仅应该在文件不存在时使用
-p 明文密码
-d CRYPT格式加密,默认
-m md5格式加密
-s sha格式加密
-D 删除指定用户
16、基于组账号进行认证
(1)自建的配置文件写入
(1)vim /etc/httpd/conf/httpd.conf
<IfModulemod_userdir.c> ---->此项取消注释
UserDir public_html ---->指定共享目录的名称
su -chenux;mkdir ~/public_html ---->与上面的UserDir后面的目录对应
19、ServerSignatureOn | Off | EMail(默认是off)
当客户请求的网页并不存在时,服务器将产生错误文档,缺省情况下由于打开了ServerSignature选项,错误文档的最后一行将包含服务器的名字、Apache的版本等信息
设置为Email,将显示ServerAdmin的Email提示
基于LoadModulestatus_modulemodules/mod_status.so模块