配置文件相关
主配置文件:
/etc/httpd/conf/httpd.conf
/etc/httpd/conf.d/*.conf
切换工作模式(prefork, wowrker, event)
在配置文件 /etc/sysconfig/httpd 中修改参数(该配置文件对应的服务脚本在 /etc/rc.d/init.d/httpd),更改参数后重启服务生效。
HTTPD=/usr/sbin/httpd prefork工作模式(多进程)
HTTPD=/usr/sbin/httpd.worker worker工作模式(多线程)
HTTPD=/usr/sbin/httpd.event event工作模式(事件驱动)
日志文件: /var/log/httpd/*
官方文档: http://httpd.apache.org/docs/2.2/
基于Basic认证方式访问网页
注: 均定义在全局中,定义在虚拟主机中不生效
# mkdir /var/www/html/admin #创建需要认证访问的目录
基于用户认证
<Directory "/var/www/html/admin/index.html">
Options None
AllowOverride None
AuthType Basic #认证模式
AuthName "admin page" #用户访问时的提示信息
AuthUserFile "/etc/httpd/conf.d/.htpasswd" #用户密码文件
Require user admin1 admin2 #允许admin1和admin2访问
</Directory>
# htpasswd -c -m /etc/httpd/conf.d/.htpasswd admin1
说明:创建admin1用户
-c:自动创建用户密码文件.htpasswd,仅在第一次创建用户使用,否则会覆盖
-m:使用md5加密
基于组认证
<Directory "/var/www/html/admin/index.html">
Options None
AllowOverride None
AuthType Basic #认证模式
AuthName "admin page" #用户访问时的提示信息
AuthUserFile "/etc/httpd/conf.d/.htpasswd" #用户密码文件
AuthGroupFIle "etc/httpd/conf.d/.htgroup" #组文件
Require group group1 #允许访问的用户
</Directory>
//组文件手动创建
# vim /etc/httpd/conf.d/.htgroup
/*内容格式如下,每一行定义一个组
group1:admin1 admin2
*/
基础配置
虚拟主机定义:
<VirtualHost IP:PORT>
ServerName
DocumentRoot
# 其他选项与配置主服务器几乎相同
# 访问控制、错误日志、别名等
</VirtualHost>
注: 对于自定义目录(非/var/www目录下的资源,请注意访问权限的问题),通过注释掉DocumentRoot行来避免 中心/虚拟 主机混用;
# 基于ip地址:使用不同ip分别配置不同的主机
<VirtualHost 172.27.100.1:80>
...
</VirtualHost>
<VirtualHost 172.27.100.2:80>
...
</VirtualHost>
# 基于主机名:在同一ip上配置多个域名,通过统一ip访问不同的虚拟主机
NameVirtualHost 172.27.100.1:80 # ip:port的格式应与虚拟主机部分保持一致
<VirtualHost 172.27.100.1:80>
ServerName www.test1.com
DocumentRoot /var/www/vhosts/web1
...
</VirtualHost>
<VirtualHost 172.27.100.1:80>
ServerName www.test2.com
DocumentRoot /var/www/vhosts/web2
...
</VirtualHost>
# 基于端口:在同一ip上监听不同端口来访问不同的虚拟主机,不建议使用
<VirtualHost 172.27.100.1:80>
...
</VirtualHost>
<VirtualHost 172.27.100.1:8080>
...
</VirtualHost>
日志定制相关:
%h:客户端IP地址
%l:用户登录名,-表示为空
%u:基于Basic和digest认证登录的用户名
%t:请求到达服务器时间
%r:请求报文首航信息(请求方法、URL、协议版本)
%>s:响应状态码
%b:响应报文大小(不包含HTTP首部,单位:Byte)
%{Referer}i:请求报文中referer首部的值(referer:到达当前页面的访问入口,即上一页面)
%{User-Agent}i:请求报文中User-Agent首部的值,即浏览器标识
MPM工作特性配置段
<IfModule prefork.c>
StartServers 8 #服务启动时启动的进程数
MinSpareServers 5 #最小空闲进程数
MaxSpareServers 20 #最大空闲进程数
ServerLimit 256 #服务器上限进程数
MaxClients 256 #最大的客户端数
MaxRequestsPerChild 4000 #每个进程最大请求数
</IfModule>
<IfModule worker.c>
StartServers 4 #同上
MaxClients 300 #最大客户端数
MinSpareThreads 25 #最小空闲线程数
MaxSpareThreads 75 #最大空闲线程数
ThreadsPerChild 25 #每个进程的线程数
MaxRequestsPerChild 0 #每个进程响应的请求数,0表示无限制
</IfModule>
开启服务器状态信息页
当客户端请求server-status这个资源时,配置文件中如果定义了如下Location,且客户端被允许访问该页面,则服务器会返回相关的信息页。
注: 在虚拟主机外定义,则对全局生效,在虚拟主机内定义,则仅对该虚拟主机生效。
<Location /server-status>
SetHandler server-status
Order allow,deny
Allow from 172.27.1.1 #允许该主机访问,也可以是网段
</Location>
//若需要查看扩展信息,请使用如下定义
ExtendedStatus On
开启HTTPS服务
1、获取CA证书(略)
2、安装SSL模块,配置配置文件
# yum install mod_ssl -y #安装ssl模块
/*配置文件:/etc/httpd/conf.d/ssl.conf
<VirtualHost IP:PORT>
DocumentRoot
ServerName
SSLCertificateFile
SSLCertificateKeyFile
</VirtualHost>
注:如果有多个服务主机,则需在ssl.conf文件中一一定义,仍然要添加如下行信息:
NameVirtualHost IP:PORT #如:NameVirtualHost 172.27.100.1:443
*/