LoaRunner性能测试系统学习教程:Apache调优( 二 )
OptionsFollowSymLinks
Options-FollowSymLinks+SymLinksIfOwnerMatch
这样 , 至少可以避免对DocumentRoot路径的多余的验证 。
注意:如果Alias或RewriteRule中含有DocumentRoot以外的路径 , 那么同样需要增加这样的段 。 为了得到最佳性能 , 应当放弃对符号连接的保护 , 在所有地方都设置FollowSymLinks , 并放弃使用SymLinksIfOwnerMatch 。
4)内容协商(ContentNegotiation)
一个资源可能会有多种不同的表现形式 , 比如 , 可能会有不同语言或者媒体类型的版本甚至其组合 。 最常用的选择方法是提供一个索引页以供选择 。 但是由于浏览器可以在请求头信息中提供其首选项的表现形式 , 因此就有可能让服务器进行自动选择 。 比如 , 浏览器可以表明希望看见法语的信息 , 如果没有 , 英语的也行 。 如需仅请求法语的表现形式 , 浏览器可以发出:
Accept-Language:fr
注意:此首选项信息仅当存在多种可选的语言表现形式时才有效 。
下面是一个更复杂的请求 , 浏览器表明 , 可以接受法语和英语 , 但最好是法语;接受各种媒体类型 , 最好是HTML , 但纯文件或其他文本类型也可以;最好是GIF或JPEG , 但其他媒体类型也可以 , 并允许其他媒体类型作为最终表现形式:
Accept-Language:fr;q=1.0,en;q=0.5
Accept:text/html;q=1.0,text/*;q=0.8,image/gif;q=0.6,image/jpeg;q=0.6,image/*;q=0.5,*/*;q=0.1
Apache支持HTTP/1.1规范中定义的“服务器驱动”的内容协商 , 可以完全地支持Accept、Accept-Language、Accept-Charset、Accept-Encoding请求头 , 这些是RFC2295和RFC2296中定义的实验协商协议 , 但是不支持这些RFC中定义的“功能协商” 。
资源(resource)是一个在URI(RFC2396)中定义的概念上的实体 , 一个HTTP服务器 , 比如Apache , 以表现形式(representation)提供对其命名空间中资源的访问 , 各种表现形式由已定义的媒体类型、字符集和编码的字节流构成 。 任何一个特定的时刻 , 一个资源可以没有 , 或者有一个 , 或者有多个表现形式 。 如果有多个表现形式存在 , 则称该资源是可协商的(negotiable) , 其各种表现形式称为变种(variant) , 而一个可协商的资源的各种变种的区别途径称为变元(dimension) 。
可以使用下述两种途径之一向服务器提供有关各变种的信息 , 以实现对资源的协商:
使用类型表(也就是一个*.var文件)明确指定各变种的文件名 。
使用“MultiViews”搜索 , 即服务器执行一个隐含的文件名模式匹配 , 并在其结果中选择 。
使用类型表文件
类型表是一个与type-map处理器关联的文档(或者兼容早期Apache配置的MIME类型:application/x-type-map) , 要使用这个功能 , 必须在配置中建立处理器 , 以定义一个文件后缀为type-map , 最好的方法是在配置文件中这样设置:
AddHandlertype-map.var
类型表文件应该与所描述的资源同名 , 且对每个有效变种都有一个块(entry) , 每个块由若干连续的HTTP头行组成 , 不同变种的块用空行分开 , 块中不允许有空行 , 通常类型表都以一个描述总体性质的组合块作为开始(这不是必须的 , 如果有也会被忽略) 。 下例是一个描述资源foo的命名为foo.var的类型表文件:
URI:foo
URI:foo.en.html
Content-type:text/html
Content-language:en
URI:foo.fr.de.html
Content-type:text/html;charset=iso-8859-2
Content-language:fr,de
注意:即使将MultiViews设置为On , 类型表仍然优先于文件后缀名 , 如果不同的变种具有不同的资源品质 , 就可以对媒体类型使用“qs”参数来表示这种不同 。 实例:一个图片的jpeg、gif、ASCII-art三个有效变种:
URI:foo
URI:foo.jpeg
Content-type:image/jpeg;qs=0.8
URI:foo.gif
Content-type:image/gif;qs=0.5
URI:foo.txt
Content-type:text/plain;qs=0.01
qs的取值范围是0.000到1.000 , 取值为0.000的变种永远不会被选择 , 没有指定qs值的变种其qs值为1.0 。 qs值表示一个变种相对于其他变种的"品质" , 比如在表现一张照片时 , jpeg通常比字符构图有更高的品质;而如果要表现的本来就是一个ASCII-art , 那么当然字符构图就会比jpeg文件有更高的品质 。 因此 , qs的值取决于变种所表现的资源本身 。 mod_negotation类型表文档中有完整的HTTP头的列表 。
Multiviews
MultiViews是一个针对每个目录的选项 , 也就是说可以在httpd.conf或.htaccess(如果正确设置了AllowOverride)文件中的
- 巅峰|realme巅峰之作:120Hz+陶瓷机身+5000mAh 做到了颜值与性能并存
- 华为|骁龙870和骁龙855区别都是7nm芯片吗 性能对比评测
- 器件|苏州纳米所等在高性能柔性储能器件研究中取得进展
- 超强|RedmiNote9系列发布!天玑800U赋予超强5G性能
- iPhoneX|iPhone12和iPhoneX性能对决:差距比想象的大太多
- Redmi|Redmi Note 9系列发布,搭载天玑800U具备超强5G性能
- 首发|华为或首发联发科6纳米+A78新U:性能超强不输麒麟9000
- 华为|安兔兔10月安卓性能榜:华为Mate40 Pro第一 麒麟9000碾压骁龙865
- 骁龙865|5G手机中的性能怪兽,256+120W闪充,比iPhone12值得买
- 网间|新外观专利陆续曝光 徐起和网间透露realme极致性能新机将至
