apache
Posted Mr.He多多指教
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了apache相关的知识,希望对你有一定的参考价值。
- 全局配置:生效于整个apache服务,带### Section 1:Global Environment,表示下面的部分都是全局配置
- 主服务配置:默认站点配置
3.虚拟主机配置
第一部分:
ServerToken: OS
服务器返回的我们关于服务器的一些相关信息,ServerToken就是影响我们关于返回信息的详细程度。
Apache2.2.15(CentOS) Server at 192.168.1.107 Prot 80
该选项还可以选为Major,这次返回的信息就要比OS要少
Apache2 Server 192.168.1.107 Prot 80
该选项还可以选为Full,该选项返回的信息是最多的。
ServerRoot:控制我们服务的主目录,其实就是我们配置文件的主目录,我们服务的一些相关信息都保存在这个目录下。 是不能更改的
PidFile:记录我们主进程或者控制进程的进程id。可以看出这里的目录不是绝对路径,是一个相对路径。其实就是上面的ServerRoot+PidFile,即/etc/httpd/run/httpd.pid
TimeOut:apache的超时时间
在一次Tcp连接过程中,进行多次请求,这样不用每次请求都去重新建立一个连接,效率会高一点
打开KeepAlive,那么就可以在一次TCP连接中进行多次请求。该参数用来限制一次tcp连接,最多的请求数量。设置为0,为无限次。
一次TCP连接中,两次请求之间的最大时间间隔。建立了一个支持KeepAlive的TCP连接,那么就可以在一次TCP连接中进行多次请求,但是如果我们这个连接建立好了之后,长时间没有第二次请求,那么这个连接就会断开。
Lisetn
服务默认监听的端口,以及在哪个IP地址上监听
我们可以在上面的注释中,看到一个示例,12.34.56.78:80,它在这里指明了IP地址。如果我们没有指明IP地址,只指明端口,意思就是在服务器的所有地址上都监听80端口。
如果我们的服务器有多块网卡,每一块网卡都配置了不同的IP地址,那么不写IP地址,就代表了,我们从哪块网卡都是可以访问的。如果我们的服务器有多块网卡,但是我们想让我们的WEB服务器工作在一块网卡上,我们就可以指定这块网卡的IP地址
语法:
LoadModule 模块名称 模块路径
如果我们不需要这些东西,这些东西是可以删除掉的。因为我们用不到这个模块。这样可以精简我们的apache服务,让他的效率更高。减少它默认加载的模块数量。如果我们自己下载了另外的模块,也可以按照它的语法,把它加进去
加载额外的配置文件。也就是加载了conf.d目录下面的*.conf文件。前面我们提到过,conf.d是模块的配置文件,每一个模块都可以在conf.d里面有一个独立的配置文件。
如果我们把这句话删除,那么conf.d下的配置文件就完全无效了,我们完全可以把conf.d里面的配置文件内容写到我们的主配置文件里面,即http.conf里面。所以Include conf.d/*.conf的意思就是通过这条命令把这些模块配置文件加载到我们的主配置文件
指定我们apache子进程,是以哪个用户身份去运行的
第二部分
应用到我们apache默认(缺省)的网站上的,或者说我们apache的主服务。
大家都知道apache在不做任何配置的时候,就有一个默认的站点
默认的网站的根目录是在/var/www/html/下
指定我们管理员的邮箱
当我们的服务器出现一些故障的时候,比如500错误,或者其他错误,apache会自动返回这个邮件的地址,让你去联系管理员。所以这个邮件地址应该设为管理员的邮箱
指定服务器的域名,这里必须设置成和我们网站的域名一样,如果没有指定,会提示错误
是否去使用一个严格合法的域名:使用简化的域名。如果设置为on,但是使用了不是严格合法的域名,apache会跳转为之前设置的ServerName。不允许使用客户端传递给服务器的主机名,因为我们客户端向服务器发送一个请求的时候,实际上会把我们用哪个主机名去访问服务器的,作为一个参数传递过去。这里设置的就是服务端是否接收这个参数。3分
注意:如果我们使用了虚拟主机了,这里一定要设置为OFF
设置网站默认的根目录
针对这个目录有哪些访问控制的。apache允许针对不同的目录设置不同的访问控制
下图配置的是缺省的访问控制,这些访问控制(Options、AllowOverride)应用到根目录上
语法<Directory 目录>
访问控制
</Directory>
应用到我们Derectory指定的目录,
图中指定的是根目录,所以里面的选项,Options AllowOverride等都是加载到我们根目录上的访问控制。
当我们加载了某个模块的时候,来应用中间的这些规则。
比如下图:如果加载了mod_userdir.c这个模块,那么UserDir disabled这个条规则才生效。如果没有加载这个模块,那么这条规则就不生效
当我们没有指定任何网页的时候,默认加载的网页。如果写多个,会根据从左到右的顺序依次去尝试
针对目录设置访问控制,在目录中写一个.htaccess的文件放到该目录下。如下这句话就是去加载这个文件的。
对文件访问进行控制。后面是一个正则表达式,代表凡是以.ht开头的文件默认是不允许让你读的
指定mime配置文件的路径,指定我们每一种文件的类型。比如.txt纯文本的.mp4 .avi 是视频的.mp3是音频的,实际上就是配置这些东西的。这就是他们的配置文件
指定我们网站默认的类型,apache默认返回的类型是纯文本的(text/plain)。如果我们进行任何设置的话,默认返回的就是纯文本的。你的客户端/浏览器就知道现在是在加载一个纯文本的内容。如果改为radio mp4,客户端就知道我现在加载的是一个视频
是否进行域名的解析:我们知道apache有日志文件,会记录访问者的IP地址,访问的是哪个页面等等。如果开启,那么会把访问者IP地址解析为域名,一般关闭掉,因为域名解析是很缓慢的 ,很占资源。比如有100次访问,就需要有100次域名解析。而且大多数IP地址是没有办法反向解析的。
服务器默认的错误日志的路径
默认日志信息的详细程度,或者说级别。debug最详细
日志格式
默认访问日志的类型??
服务器签名:指定在我们的报错页面上是否显示我们服务器的详细信息。和全局配置ServerToken类似,都是控制我们服务器报错信息的详细程度。
服务器路径别名。让我们的用户不用输入太长的连接地址
脚本的别名
语言 文件类型 图标 不用管,基本不会用
默认网页的编码。每一个网页,我们在编写的时候,都会通过html语法指定网页的编码格式,但是这个是可以不写的。如果不写,就用下面的配置,也就是web服务器会以什么样的编码方式把页面发送给客户端
基于特定的浏览器,做一些特定的配置。比较方便对不同的浏览器做一些兼容和适应。
第三部分
以上是关于apache的主要内容,如果未能解决你的问题,请参考以下文章