核心模块之HTTP模块基本常用指令

本文详细介绍了 Nginx 中 HTTP 模块的作用及其关键配置指令,包括 alias、client_body_in_file_only、client_body_buffer_size 等,帮助读者深入理解 Nginx 的工作原理。
本文来自:优快云博客专栏《Nginx高性能Web服务器》 及Poechant技术博客,转载请注明出处。



一、HTTP模块的作用是什么?



Nginx的HTTP模块用于控制Nginx的HTTP进程。





二、指令



1. alias

含义:指定location使用的路径,与root类似,但不改变文件的跟路径,仅适用文件系统的路径。

语法:alias <file-path | directory-path>

缺省:N/A

作用域:http.server.location

示例:

location /i/ {

alias /home/michael/web/i/;

}

则请求 /i/logo.png 则返回 /home/michael/web/i/logo.png。

注意:

(1)替换路径时,可以使用变量。

(2)alias无法在正则的location中使用。如果有这种需求,则必须使用rewrite和root。



2. client_body_in_file_only

含义:指定是否将用户请求体存储到一个文件里。

语法:client_body_in_file_only <on | off>

缺省:off

作用域:http.server.location

示例:client_body_in_file_only on;

注意:

(1)该指令为on时,用户的请求体会被存储到一个文件中,但是请求结束后,该文件也不会被删除;

(2)该指令一般在调试的时候使用。



3. client_body_buffer_size

含义:指定用户请求体所使用的buffer的最大值

语法:client_body_buffer_size <size>

缺省:两个page的大小,一般为8k或16k

作用域:http.server.location

示例:client_body_buffer_size 512k;

注意:如果用户请求体超过了buffer的大小,则将全部内容或部分内容存储到一个临时文件中。



4. client_body_temp_path

含义:设置存储用户请求体的文件的目录路径

语法:client_body_temp_path <directory path> [level1 | level2 | level3]

作用域:http.server.location

示例:client_body_temp_path /spool/nginx/client_temp 1 2;



5. client_body_timeout

含义:设置用户请求体的超时时间。

语法:client_body_timeout <time>

作用域:http.server.location

示例:client_body_timeout 120s;

注意:只有请求体需要被1次以上读取时,该超时时间才会被设置。且如果这个时间后用户什么都没发,nginx会返回requests time out 408.



6. client_header_buffer_size

含义:设置用户请求头所使用的buffer大小

语法:client_header_buffer_size <size>

缺省:1k

作用域:http.server

示例:client_header_buffer_size 2k;

注意:

(1)对绝大多数请求来说,1k足以满足请求头所需的buffer;

(2)对于携带有较大cookie或来自于wap用户的请求头来说,1k的buffer一般不够,这时可以使用指令large_client_header_buffers。



7. client_header_timeout

含义:设置用户请求头的超时时间。

语法:client_header_timeout <time>

缺省:1m

作用域:http.server.location

示例:client_header_timeout 3m;

注意:只有请求头需要被1次以上读取时,该超时时间才会被设置。且如果这个时间后用户什么都没发,nginx会返回requests time out 408.



8. client_max_body_size

含义:设置所能接收的最大请求体的大小

语法:client_max_body_size <size>

缺省:1m

作用域:http.server.location

示例:client_max_body_size 2m;

注意:根据请求头中的Content-Length来判断请求体大小是否允许。如果大于设定值,则返回“ Request Entity Too Large”(413)错误。不过要注意的是,浏览器一般并不对这个错误进行特殊显示。


本文来自:优快云博客专栏《Nginx高性能Web服务器》 及Poechant技术博客,转载请注明出处。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值