🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
### ServerTokens 应答头 ~~~ ServerTokens OS 安全--> ProductOnly ~~~ ### Timeout 超时时间 服务器在断定请求失败前等待的秒数,比如第一次握手成功,第二次迟迟不来 >[info] 服务器较为繁忙时,此数值应当调低 ~~~ Timeout 60 ~~~ ### KeepAlive 长连接 若服务器不是特别繁忙,应该打开长连接,可以显著提高服务器的性能 长连接方式,是为了让下一次的**socket**通信复用之前创建的连接,从而,减少连接的创建和销毁的系统开销。 保持连接,会让某个进程或者线程一直处于等待状态,直到再次通信或者连接超时。 ~~~ KeepAlive Off ~~~ ### MaxKeepAliveRequests 长连接最大请求数量 一次长连接发送的请求数量 ~~~ MaxKeepAliveRequests 100 ~~~ ### KeepAliveTimeout 长连接最长连接时间 若服务器很繁忙,应尽量减小此值 ~~~ KeepAliveTimeout 15 ~~~ ### ErrorDocument 错误响应代码 * 通过文本来取代500响应代码 ~~~ #ErrorDocument 500 "The server made a boo boo." ~~~ * 通过一个页面取代404响应代码 ~~~ #ErrorDocument 404 /missing.html ~~~ * 通过一个脚本取代404响应代码 ~~~ #ErrorDocument 404 "/cgi-bin/missing_handler.pl" ~~~ ### Options指令 ~~~ None:不起任何作用 ExecCGI:允许当前目录下执行CGI脚本 Index:开启索引功能;如果一个请求的目录URL没有由DirectoryIndex指令指定的索引文件,则返回目录列表。 FollowSymLinks:允许在当前目录中使用符号连接,如果此参数参数在<Location>中将被忽略, All:使用除multiView以外的所有特性,All是Options指令的默认参数。 options可以使用`+``-`来改变上面定义的参数,具体化现在的参数。 ~~~ >[danger] 若要启用重写 需要开启FollowSymLinks ### 容器部分 容器处理顺序 #### IfModule容器 容器作用于模块,首先判断模块是否载入,在进行处理。 #### IfDefine容器 与IfModule类似,只有当参数为真时才执行,参数需要在httpd启动时加上。 ~~~ <ifDefine proxy> LoadModule ------ </IfDefine> ~~~ ~~~ httpd -S proxy ~~~ #### Directory和DirectoryMatch容器 Directory的作用是让其封装的指令在指定目录及其子目录起作用,这个路径必须是绝对路径,可以使用通配符“*”、"?" ,也可以使用“[]”来确定字符范围,但不能匹配"/" 同样支持正则表达式 `<Directory ~ "^/srv/apache[0-9]{2}/html">` #### Files和FilesMatch容器 Directory作用于文件,同样支持**通配**和**正则表达式** #### Location和LocationMatch容器 Location 的作用对象是URL ~~~ # 禁止所有cgi开头的URL访问 <Location /cgi> Order Allow, Deny Deny from all </Location> ~~~ ~~~ # 通过Location将请求映射到Apache模块处理器上 <Location /server-status> SetHandler server-status </Location> ~~~ #### .htaccess文件 Allowoverride 在apache中,httpd.conf文件完成对服务器的配置,但.htaccess可以更精细化的控制目录。使用Allowoverride来设置是否启用.htaccess。 * All:使用所有能在.htaccess文件中使用的指令。 * AuthConfig:使用鉴权指令,如AuthName,AuthType * FileInfo:使用控制文件指令,ErrorDocument/SetOutputFilter * Indexes:使用目录索引指令 * Options:使用目录控制功能指令 * Limit:使用主机访问控制指令 #### 容器的使用可能会带来安全问题 假如使用localtion对/src/html进行了访问限制,那么使用/Src/html,则可以跳过限制,正常访问,因为超链接不区分大小写 >[danger] 在新版httpd中,这个问题似乎已经解决,超链接已经区分大小写了。 在linux系统中,文件或者目录使用符号链接时,如果没有使用Options禁止对符号链接的跟随,也会产生安全问题, ### 目录索引 #### mod_dir模块 mod_dir实现了用户指定索引文件功能,匹配顺序从前至后。 ~~~ DirectoryIndex index.html index.php ~~~ #### mod_autoindex模块 mod_autoindex 模块实现了对目录的自动索引,当索引文件没找到时,当启用了这个模块就会自动索引出一个目录。 * IndexOptions ~~~ DescriptionWidth=[n|*] 定义表述列的宽度,单位是字符;-DescriptionWidth自动计算最佳宽度;n表示字符宽度,*显示所有描述字符 FancyIndexing:启用复杂索引,开启后会显示文件名,文件大小,修改时间,描述 FolderFirst:目录靠前显示,只有FancyIndexing启用时才生效。 HTMLTable:以表格方式显示索引。 IconsAreLinks:图标可以点击 NameWidth=[n|*]:文件名显示字节数 TrackModified 将目录加入高速缓存中 Charset=UTF-8 将字体设置为UFT8, ~~~ * AddIcon和DefaultIcon ~~~ AddIcon /icon/bin.gif .bin .exe DefaultIcon /icons/unknown.gif ~~~ * IndexIgnore 隐藏指定的文件或者文件夹,可以使用通配符“*”,"?" * IndexOrderDefault 设置默认的目录索引顺序,可以使用Ascending或者Descending来指定升序或者降序, Name:文件名称 Date:文件日期 Size:文件大小 Description:自定义说明 IndexOrderDefault Asending Size