经常配置虚拟主机的朋友应该对Apache比较熟悉,但是对于一些新手来说,不知道如何下手。Apache是一款知名的Web服务器软件。由于它的跨平台性和安全性,它几乎可以在所有广泛使用的计算机平台上运行。它快速可靠,可以通过简单的API进行扩展,将Perl/Python解释器编译到服务器中。然后,让我们学习如何编写Apache配置文件httpd.conf
Apache的主要配置文件:etc/httpd/conf/httpd.conf。
默认网站主目录:/var/www/html/
Apache服务器配置信息全部存储在主配置文件/etc/httpd/conf/httpd.conf中,这个文件内容很多,wc命令统计的行数有1009行,大部分是以#开头的注释行。
[root @ Justin ~]# WC-l/etc/httpd/conf/httpd . conf
1009 /etc/httpd/conf/httpd.conf
[root@justin ~]#
配置文件由三部分组成:
[root @ Justin ~]# grep ' '/etc/httpd/conf/httpd . conf-n
33:###第1:节全球环境
245:###第2:节“主”服务器配置
973:###第3:节虚拟主机
[root@justin ~]#
1)全局环境-全局环境配置,决定了Apache服务器的全局参数。
2)主服务器配置——主服务配置,相当于Apache中的默认网站。如果我们的服务器只有一个站点,我们只需要在这里配置。
3)虚拟主机——虚拟主机,不能与主服务器的主服务器共存。启用虚拟主机时,无法使用主服务器。
-
1)全球环境
44个服务器令牌操作系统
如果在出现错误页面时显示服务器操作系统的名称,则不会显示服务器令牌产品。
57 ServerRoot '/etc/httpd '
用于指定Apache的运行目录。服务启动后,目录将自动更改为当前目录。以后使用的所有相对路径都在这个目录下。
65 PidFile run/httpd.pid
记录httpd守护进程的pid号,这是系统识别进程的一种方法。系统中可能有多个httpd进程,但是这个PID对应的进程是其他的父进程。
70超时60
服务器与客户端断开连接的时间。
76保持活动关闭
是否连续连接(因为每次连接都需要三次握手,建议访问量不大的打开此项,访问量大的最好关闭此项),修改为:KeepAlive On表示允许程序性在线。
83 MaxKeepAliveRequests 100
指示连接请求的最大数量。
89 KeepAliveTimeout 15
断开连接前的时间。
102
103启动服务器8
104部服务器5
105台MaxSpareServers 20
106服务器限制256
107 MaxClients 256
108 MaxRequestsPerChild 4000
109
系统的默认模块意味着每次访问都会启动一个进程(也就是说,当多个连接共享一个进程时,只有一个连接可以同时获得服务)。
StartServer启动服务时,会启动8个进程,最少5个空闲进程,最多20个空闲进程。
Max限制客户端同时进入等待队列的最大连接请求数。
MaxRequestsPerChild在每个进程的生命周期内,服务允许的最大请求数,0表示永不结束。
118
119启动服务器4
120台MaxClients 300
121个公共线程25
122 MaxSpareThreads 75
123线程子线程25
124 MaxRequestsPerChild 0
125
为Apache配置线程访问,即每次访问WEB服务启动一个线程,内存占用率相对较小。
服务器限制服务器允许配置的最大进程数。
线程限制每个子进程可以配置的最大线程数。
StartServers启动两个httpd进程,
MaxClients最多可以同时发起250次访问,超过的将进入队列等待,其大小由ServerLimit和ThreadsPerChild的乘积决定。
ThreadsPerChild每个子进程生存期内驻留执行线程的数量在子线程建立后不会增加。
每个进程启动的最大线程数。如果达到极限,过程将结束;如果设置为0,子线程将永远不会结束。
136听80
监控的端口。如果有多个网卡,默认情况下会监控所有网卡。
123 150 LoadModule auth _ basic _ modules/mod _ auth _ basic . so
.
201 LoadModule version _ modules/mod _ version . so
启动时加载的模块。
221包括conf.d/*。conf
为加载配置文件。
242用户apache
243阿帕奇集团
启动服务后转换的身份通常是启动服务时的root,然后再转换身份,增加了系统安全性。
2)主服务器配置
262服务器管理员根目录@localhost
管理员邮箱
276 # ServerName www . example.com :80
默认情况下,没有必要指定。服务器通过名称解析过程获得自己的名称。但是如果解析有问题(比如反向解析不正确)或者没有DNS名称,也可以在这里指定IP地址。如果不正确,服务器将无法正常启动。在启动Apache的时候,系统提示我启动httpd:httpd : apr _ sockaddr _ info _ get()。Justin httpd:无法可靠地确定服务器的完全限定域名,使用127.0.0.1作为服务器名称。解决方案是启动此项,并将www.example.com:80修改为自己的域名或直接修改为localhost。
1 285使用标准名称关闭
如果客户端提供主机名和端口,Apache将使用客户端提供的信息来构建自引用网址。这些值与用于实现基于域名的虚拟主机的值相同,并且可用于相同的客户端。变量CGI SERVER_NAME和SERVER_PORT也是根据客户端提供的值构建的。
292 DocumentRoot '/var/www/html '
存储网页的目录。
302
符号链接后的303个选项
304 AllowOverride None
305
在根目录上设置权限。
317
符号链接后有331个选项索引
338 AllowOverride None
343命令允许,拒绝
344允许所有人
346
关于/var/www/html目录权限的设置,选项中的Indexes是指当网页不存在时,目录中的文件是否允许被索引和显示,以及是否允许FollowSymLinks访问符号链接文件。一些选项包括是否在ExecCGI表中使用CGI。例如,包含EXECCGI Follow Symlinks的选项意味着允许服务器执行CGI和SSI,禁止列出目录。SymLinksOwnerMatch意味着只有当符号链接文件和目标文件由同一用户拥有时,才允许访问。AllowOverrideNone表示不允许该目录下的访问控制文件在这里更改配置,也就是说不需要查看该目录下的访问控制文件。改为:AllowOverride All表示。允许htaccess。Order对页面的访问控制顺序是默认选项,例如,默认情况下允许,拒绝是拒绝,Allowfromall表示允许所有用户,网站的访问控制可以结合上一项进行控制。
360
366用户目录被禁用
375
默认情况下,是否允许用户访问其主目录是不允许的。
381 #
382 # AllowOverride文件信息验证配置限制
383 #选项多视图索引符号链接所有者匹配包括无执行
384 #
385 #订单允许,拒绝
386 #允许所有人
387 #
388 #
389 #订单拒绝,允许
390 #拒绝所有人
391 #
392 #
如果允许访问用户主目录中的网页文件,请取消以上评论并进行修改。
402目录索引index.html索引
指定要访问的主页的默认主页名,默认主页文件名为index.html。
409访问文件名。htaccess
在每个目录中定义访问控制文件名。默认值为。htaccess。
415
416命令允许,拒绝
417拒绝所有人
418满足所有人
419
不允许网站上的用户查看的控件。htpasswd和。htaccess文件。
425 TYPe config/etc/mime . types
用于设置保存不同MIME类型数据的文件名。
436默认类型文本/纯文本
默认网页的类型。
443
444 # MiMemagicFIle/usr/share/magic . mime
445 MIMEMagicFile conf/magic
446
指定判断文件真实MIME类型功能的模块。
456主机名查找关闭
开启此功能时,在记录日志的同时记录主机名,需要服务器反向解析域名,增加了服务器的负载,一般不建议开启。
466 #启用MMAP关闭
允许内存映射:如果httpd在传输过程中需要读取文件的内容,可以使用内存映射。On表示如果操作系统支持,将使用内存映射。在一些采用多核处理器的系统上,这可能会降低性能。如果在安装了NFS的DocumentRoot上打开此功能,它可能会因分段而导致httpd崩溃。
475 #启用发送文件关闭
该指令控制httpd是否可以使用操作系统内核的sendfile支持向客户端发送文件。默认情况下,当处理请求而不访问文件内部的数据时(例如,发送静态文件内容),如果操作系统支持,Apache将使用sendfile将文件内容直接发送到客户端,而不读取文件。
1 484个错误日志/错误_日志
存储错误日志的位置。
491日志级别警告
阿帕奇日志的级别
497日志格式' % h % l % u % t ' % r ' % s % b ' % { Referer } I ' ' % { User-Agent } I '组合
498日志格式' %h %l %u %t '%r' %s %b '通用
499日志格式“% { referrer } I-% U”referrer
500日志格式“% {用户代理}i”代理
日志的格式由不同的代码定义和表示。
513 #自定义日志/访问日志公共
526个自定义日志/访问日志组合
解释日志记录的位置,它使用相对路径,所以ServerRoot需要指出日志位置存储在/etc/httpd/logs中。
536服务器签名开启
定义当客户请求的网页不存在或错误时,是否提示apache版本信息。
551 Alias/icons/'/var/www/icons/'
定义一些不在DocumentRoot下的文件,但是映射到网页的根目录下,这也是访问其他目录的一种方法,但是声明的时候记得在目录后面加“/”。
553
554选项索引多视图跟随符号链接
555 AllowOverride None
556命令允许,拒绝
557允许所有人
558
定义/var/www/icons/的权限,并将其修改为选项多视图跟随符号链接,以指示树结构不显示在浏览器上。
563
564 # WebDav锁数据库的位置。
565 DAVLockDB/var/lib/dav/lockdb
566
mod_dav_fs.c模块的管理。
576 script alias/CGI-bin/'/var/www/CGI-bin/'
CGI模块的别名类似于别名。
582
583 AllowOverride None
584选项无
585命令允许,拒绝
586允许所有人
587
/var/www/cgi-bin文件夹的管理同上。
#重定向旧-URI新-网址
重定向参数用于重写网址。当浏览器访问服务器上不再存在的资源时,服务器会向浏览器返回一个新的网址,告诉浏览器从该网址获取资源。这主要是在服务器上原本存在的文档改变位置,然后需要能够使用旧的URL访问原始网页时使用。
604索引选项FancyIndexing版本起始名称宽度=* HTMLTable Charset=UTF-8
611 addiconcbyencoding(CMP,/icons/compressed . gif)x-compression x-gzip
.
669 IndexIgnore。* *~ *# HEADER* README* RCS CVS *,v *,t
当HTTP请求的URL是目录时,服务器返回目录中的索引文件。如果目录中没有索引文件,并且服务器具有显示目录文件列表的权限,则将显示目录中的文件列表。为了使文件列表易于理解,而不仅仅是一个简单的列表,需要这些参数。如果使用IndexOptionsFancyIndexing选项,服务器可以为不同的文件引用不同的图标。如果没有,请使用默认图标定义默认图标。同样,AddDescription可用于干预不同类型文档的描述。
709 AddLanguage ca。大约
.
734 AddLanguage zh-TW。zh-tw
添加语言
743语言优先考虑的是语言和其他语言
Apache支持的语言。
759 AddDefaultCharset UTF-8
默认支持的语言。
765 #AddType应用程序/x-tar。tgz
如果你想支持php的解析,添加这样一行。
773 #AddEncoding x-compress。Z
774 #AddEncoding x-gzip。gz。tgz
支持以结尾的文件。z和gz.tgz
779 AddType应用程序/x-compress。Z
780 AddType应用程序/x-gzip。gz。tgz
将应用程序添加到上述两个文件中。
796 # AddHandler CGI-脚本。计算机生成图像
修改为:AddHandler CGI-脚本cgi .pl表示允许扩展名为pl .的公共网关接口脚本运行
816添加类型文本/html .shtml
817 AddOutputFilter INCLUDES .shtml
添加动态处理类型为服务器解析的由服务器预先分析网页内的标记,将标记改为正确的超文本标记语言标识
833 #错误文档404/缺失。超文本标记语言
当服务器出现404错误的时候,返回missing.html页面
855 Alias/error/'/var/www/error/'
赋值别名
857
858
859
860 AllowOverride None
861选项包括无执行
862附加输出过滤器包括超文本标记语言
863 AddHandler类型-映射变量
864命令允许,拒绝
865允许所有人
866语言优先级
867强制语言优先级首选回退
868
对/var/www/error网页的权限及操作
895浏览器匹配' Mozilla/2 '无保持活动
896 BrowserMatch ' MSIE 4 . 0 B2 ' no keepalive降级-1.0强制-响应-1.0
897 BrowserMatch '真实玩家4.0 '强制响应-1.0
898浏览器匹配Java/1.0 '强制响应-1.0
899浏览器匹配" JDK/1.0 "强制响应-1.0
.
设置特殊的参数,以保证对老版本浏览器的兼容,并支持新浏览器的特性
3)虚拟主机
990 #NameVirtualHost *:80
如果启用虚拟主机的话,必须将前面的注释去掉,而且,第二部分的内容都可以出现在每个虚拟主机部分。
998 #虚拟主机示例:
1003 #
1004 #服务器管理员webmaster@www.285868.com
1005 #文档根目录/www/docs/www。285868 .com
1006 #服务器名www.285868.com
1007 #错误日志/www.285868.com-error_log
1008 #自定义日志日志/www .285868 .com-access _ log公共
1009 #
www.285868.com替换为你的网址