nginx核心板块来构建静态服务器三

追求适度,才能走向成功;人在顶峰,迈步就是下坡;身在低谷,抬足既是登高;弦,绷得太紧会断;人,思虑过度会疯;水至清无鱼,人至真无友,山至高无树;适度,不是中庸,而是一种明智的生活态度。

导读:本篇文章讲解 nginx核心板块来构建静态服务器三,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

文件操作的优化

sendfile系统调用
语法:
sendfile on|off;
默认:
sendfile off;
配置块:
http

server

location

以启用
Linux
上的
sendfile
系统调用来发送文件,它减少了内核态与用户态之间的两次
内存复制,这样就会从磁盘中读取文件后直接在内核态发送到网卡设备,提高了发送文件的
效率

 AIO系统调用

语法: aio on|off;
默认: aio off;
配置块: http、server、location
此配置项表示是否在
FreeBSD

Linux
系统上启用内核级别的异步文件
I/O
功能。注意,
它与
sendfile
功能是互斥的

directio

语法: directio size|off;
默认: directio off;
配置块: http、server、location
此配置项在
FreeBSD

Linux
系统上使用
O_DIRECT
选项去读取文件,缓冲区大小为
size
通常对大文件的读取速度有优化作用。注意,它与
sendfile
功能是互斥的。

directio_alignment

语法: directio_alignment size;
默认: directio_alignment 512;
配置块: http、server、location
它与
directio
配合使用,指定以
directio
方式读取文件时的对齐方式。一般情况下,
512B
已经足够了,但针对一些高性能文件系统,如
Linux
下的
XFS
文件系统,可能需要设置到
4KB
作为对齐方式

打开文件缓存

语法: open_file_cache max=N[inactive=time]|off;
默认: open_file_cache off;
配置块: http、server、location
文件缓存会在内存中存储以下
3
种信息:
文件句柄、文件大小和上次修改时间。
·已经打开过的目录结构。
·没有找到的或者没有权限操作的文件信息

该配置项后面跟
3
种参数:
·max:表示在内存中存储元素的最大个数。当达到最大限制数量后,将采用
LRU(Least Recently Used)算法从缓存中淘汰最近最少使用的元素。
inactive:表示在inactive指定的时间段内没有被访问过的元素将会被淘汰。默认时间为
60秒。
·off:关闭缓存功能

是否缓存打开文件错误的信息

语法: open_file_cache_errors on|off;
默认: open_file_cache_errors off;
配置块: http、server、location
此配置项表示是否在文件缓存中缓存打开文件时出现的找不到路径、没有权限等错误信

不被淘汰的最小访问次数

语法: open_file_cache_min_uses number;
默认: open_file_cache_min_uses 1;
配置块: http、server、location
它与
open_file_cache
中的
inactive
参数配合使用。如果在
inactive
指定的时间段内,访问次
数超过了
open_file_cache_min_uses
指定的最小次数,那么将不会被淘汰出缓存。

检验缓存中元素有效性的频率

语法: open_file_cache_valid time;
默认: open_file_cache_valid 60s;
配置块: http、server、location
默认为每60秒检查一次缓存中的元素是否仍有效。

对客户端请求的特殊处理

忽略不合法的HTTP头部

语法: ignore_invalid_headers on|off;
默认: ignore_invalid_headers on;
配置块: http、server
如果将其设置为
off
,那么当出现不合法的
HTTP
头部时,
Nginx
会拒绝服务,并直接向用
户发送
400

Bad Request
)错误。如果将其设置为
on
,则会忽略此
HTTP
头部。

HTTP头部是否允许下划线

语法: underscores_in_headers on|off;
默认: underscores_in_headers off;
配置块: http、server
默认为
off
,表示
HTTP
头部的名称中不允许带
“_”
(下划线)

If-Modified-Since头部的处理策略

语法: if_modified_since[off|exact|before];
默认: if_modified_since exact;
配置块: http、server、location
出于性能考虑,
Web
浏览器一般会在客户端本地缓存一些文件,并存储当时获取的时
间。这样,下次向
Web
服务器获取缓存过的资源时,就可以用
If-Modified-Since
头部把上次获
取的时间捎带上,而
if_modified_since
将根据后面的参数决定如何处理
If-Modified-Since
部。

参数说明

·off:表示忽略用户请求中的If-Modified-Since头部。这时,如果获取一个文件,那么会
正常地返回文件内容。HTTP响应码通常是200。
·exact:

将If-Modified-Since头部包含的时间与将要返回的文件上次修改的时间做精确比
较,如果没有匹配上,则返回200和文件的实际内容,如果匹配上,则表示浏览器缓存的文
件内容已经是最新的了,没有必要再返回文件从而浪费时间与带宽了,这时会返回304 Not
Modified,浏览器收到后会直接读取自己的本地缓存。
before:是比exact更宽松的比较。只要文件的上次修改时间等于或者早于用户请求中
的If-Modified-Since头部的时间,就会向客户端返回304 Not Modified。

DNS解析地址:

语法: resolver address...;
配置块: http、server、location

设置
DNS
名字解析服务器的地址,例如
resolver 127.0.0.1 192.0.2.1;
DNS解析的超时时间
语法: resolver_timeout time;
默认: resolver_timeout 30s;
配置块: http、server、location
此配置项表示DNS解析的超时时间

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由半码博客整理,本文链接:https://www.bmabk.com/index.php/post/129625.html

(0)

相关推荐

发表回复

登录后才能评论
半码博客——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!