Apache主服务器配置文件
安装:rpm简单安装配置
源码编译
Httpd:SELinnux(事先处于permsssive或disable状态)
Httpd:
执行进程:/usr/sbin/httpd(MPM:prefork)
httpd(主进程masterprocess):root,root
httpd(工作进程workerprocess):apache,apache
启动进程:/etc/rc.d/init.d/httpd
Port : 80/tcp ssl :443/tcp
工作根目录(进程运行目录,也就是安装目录):/etc/httpd
配置文件目录:/etc/httpd/conf
主配置文件httpd.conf
/etc/httpd/conf.d/*.conf 都是主配置文件的一部分。用include包括进去
/etc/httpd/modules:模块路径。都是连接文件
/etc/httpd/logs ------> /var/log/httpd:日志目录
日志文件:访问日志access_log,错误log : err_log
/var/www/ 下面两个目录
html 静态页面目录
cgi-bin 动态文件目录
cgi:Common GatewayInterface
Client-->httpd (index.cgi)-->Spwan Process(index.cgi) --> httpd --> client
Perl , python , java(servlet也就是jsp) , php
欢迎页面:/etc/httpd/conf.d/welcome.conf
在httpd的朱配置文件中有这么三段
第一部分是主环境配置,第二部分是主服务器配置,第三部分是虚拟主机配置。
第三部分和第二部分不能同时生效,默认用主服务器
Directive value也就是 指令参数
指令不区分大小写,参数区分
Httpd.apache.org 指令快速参考
Yum installhttpd-manual 安装使用说明(本地)
在/etc/httpd/conf.d/manual.conf/访问的时候http://192.168.1.1/manual
http默认配置
1、全局配置:
[*]server tokens os 报错信息中的软件版本等
[*]server root 服务器工作目录(不要改)其他的内容都是相对于此文件夹
[*]pidfile pid号码
[*]timeout 120 tcp三次握手失败
[*]keepalive 是否用长连接
[*]maxkeepaliverequests 长连接最大请求次数,0位无限制
[*]keepalivetimeout 长连接超时时间,5s稍微好点loadrunner测试工具
[*]MPM(multi path module)多道处理模块,定义工作模型
[*]Prefork(一个请求用一个进程响应)稳定,性能差
[*]Worker(一个请求用一个线程响应,启动多个进程,每个进程启用多个线程)
[*]Event(一个进程响应多个请求)最强大
i)listen:80 没有ip地址就是监听所有ip地址的80
Httpd –l 显示支持的模型或模块
没有worker模型,但是我想启用worker模型,这时候在启动脚本中修改
Vim /etc/sysconfig/httpd,把警号去掉就可以了,用event就改成event就行了
模型配置
[*]prefork模块
startservers 8个空闲进程
minspareserver 最少空闲进程
maxspareserver 最多空闲进程
serverlimit maxclient最大值,需要kill进程在修改
maxclient 最多允许256个请求同时
maxrequestprechild一个进程最多响应4000次请求达到了就kill
[*]worker模型
threadsprechild 每个进程最多生成25个线程
min和maxthreads是说有进程的总和不是单个进程的
[*]主服务器段:
1、serveradminroot@localhost报错的时候可能爆出,邮箱
2、servername 如果没有就会解析自己的ip地址,如果解析不出来就给警告
3、documentroot“/var/www/html”
4、
Options indexesfollowsymlinks 这个目录下的所有的文档访问属性
None 不支持任何选项
Indexes是没有主页的情况下,列出所有的文件和目录,要删除,除非做下载站
Followsymlinks跟随符号连接,允许访问符号连接指向的真正文件(去掉)
Includes允许执行服务器段包含(SSI)
ExecCGI 允许运行CGI脚本
Multiviews
All支持所用选项
Allowoverride none,改AuthConfig可以进程用户认证
AllowOverride AuthConfig 用户认证
AuthType Basic 本地认证
AuthName "Restricted File" 认证名字(随便)
AuthUserFile"/etc/httpd/conf/htpasswd" 认证文件
Require valid-user 允许认证文件中的所有用户
#Require user username 允许认证文件中的某一个用户
htpasswd –c –m /etc/httpd/conf/htpasswdxiaoming第一次用-c
htpasswd–m/etc/httpd/conf/htpasswdtom -mmd5加密
-D 删除用户
组认证:
AllowOverride AuthConfig
AuthType Basic
AuthName "RestrictedFile"
AuthUserFile"/etc/httpd/conf/htpasswd"
AuthGroupFile"/etc/httpd/conf/htgroup"
Require groupmyusers
Vim /etc/httpd/conf/htgroup
添加 myusers: xiaomingtom
查看错误日志:tail /var/log/http/error_log
Order:用于定义基于主机的访问控制功能,ip,网络地址或主机名定义访问控制机制
Orderallow,deny先allow,后deny
Allow from 192.168.1.0/24
Deny from
Httpd –t测试语法是不是正确
Elinks文本浏览器
-dump显示网页后立即退出交互模式
-source 显示源码
Httpd –M 支持的额外的模块
是否允许在自己的家目录里面,创建个人的网站
1、UserDir disabled注释掉
2、UserDirpublic_html这个是网站的根目录。网页放下下面
3、创建用户,家目录 o+x权限 现在就可以访问了
定义家目录网站的权限
Allowoverride 弄成none或者authconfig
Options弄成none下面的limit去掉就行了。
Accessfilename .htaccess 每目录访问的权限,写到里面 ,定义那个目录的访问控制权限就在那个目录下面家里这个文件,自上而下继承的,效率很低,生产环境中不用这个东西
匹配以.ht开头的文件都不允许访问
Typesconfig/etc/mime.types支持的mime理性
Defaulttype text/plain 默认文本
Hostnamelookupsoff 在日志里面是不记录访问这的主机名,而是ip地址
登陆日志格式:
Alias /icons/ "/var/www/icons/" 别名,路径不在根目录下面,就不能访问了。此时用别名来访问。例如访问192.168.1.1 根目录是/var/www/html,访问不了/var/www/icon目录,所以用别名,直接访问192.168.1.1/icons就能访问/var/www/icon目录的东西了。
apache日志:
1、/var/log/httpd/access_log
2、/var/log/httpd/error_log
系统信息日志:
/var/log/messages
页:
[1]