首页 > 系统相关 >理解Nginx超时时间参数

理解Nginx超时时间参数

时间:2024-05-13 16:41:53浏览次数:12  
标签:缓存 Nginx 参数 proxy timeout gzip 超时

Nginx是一款自由、开源、高性能的HTTP和反向代理服务器,它可以通过不同的设置来提高网站的性能和安全性。其中,设置Nginx超时时间非常重要,因为它将直接影响网站的响应速度和用户体验。本文将从多个方面详细阐述Nginx超时时间的设置方法与注意事项。

一、请求超时时间设置
请求超时时间是指Nginx等待请求处理的最长时间,如果超时,则产生504 Gateway Time-out错误。在实际使用中,可以通过以下三个设置来控制请求超时时间。

1.1 proxy_connect_timeout

proxy_connect_timeout 5s;
proxy_connect_timeout指定与代理服务器的连接超时时间,包括TCP连接的建立和SOCKET连接的时间。在默认情况下,Nginx没有设置此选项,因此连接时间不会超时。

1.2 proxy_send_timeout

proxy_send_timeout 10s;
proxy_send_timeout指定向后端服务器发送请求的超时时间,包括发送请求头和请求体的时间。如果后端服务器不能在此时间内响应,则代理服务器会返回504错误。

1.3 proxy_read_timeout

proxy_read_timeout 10s;
proxy_read_timeout指定代理服务器接收响应的超时时间。如果后端服务器不能在这个时间内返回响应,则Nginx会关闭连接,同时返回一个504 Gateway Time-out错误

二、FastCGI超时时间设置
Nginx还支持FastCGI协议,而FastCGI超时时间也需要根据实际情况进行设置,否则也会产生类似的错误提示。

2.1 fastcgi_connect_timeout

fastcgi_connect_timeout 5s;
fastcgi_connect_timeout指定与FastCGI应用程序的连接超时时间,与proxy_connect_timeout具有相同的语法和功能。

2.2 fastcgi_send_timeout

fastcgi_send_timeout 10s;
fastcgi_send_timeout指定向FastCGI服务器发送请求的超时时间,与proxy_send_timeout具有相同的语法和功能。

2.3 fastcgi_read_timeout

fastcgi_read_timeout 10s;
fastcgi_read_timeout指定FastCGI服务器响应的超时时间,与proxy_read_timeout具有相同的语法和功能。

三、Keepalive超时时间设置
Keepalive超时时间是指HTTP Keepalive连接的最大保持时间,如果超时,则连接会被关闭。Keepalive连接可以避免多次建立TCP连接,从而提高Web应用的性能。在Nginx中,可以通过以下两个选项来设置Keepalive超时时间。

3.1 keepalive_timeout

keepalive_timeout 30s;
keepalive_timeout指定客户端与代理服务器之间的连接保持时间。如果客户端在超时时间内没有发送新的请求,则连接会被关闭。

3.2 keepalive_requests

keepalive_requests 100;
keepalive_requests指定每个Keepalive连接的最大请求次数。如果超过此数量,则连接会被关闭

四、gzip超时时间设置
如果启用了Nginx的gzip压缩功能,则还需要设置gzip超时时间,以便在文件较大或网络较慢时避免压缩失败。可以使用以下选项进行设置。

4.1 gzip_vary

gzip_vary on;
gzip_vary指定浏览器在请求相同资源时是否应考虑Accept-Encoding请求头。启用此选项时,Nginx将在HTTP响应头中添加Vary: Accept-Encoding,以表明压缩后的内容是针对特定的Accept-Encoding请求头进行的。这样可以确保缓存服务器正确地缓存压缩后的内容。

4.2 gzip_comp_level

gzip_comp_level 6;
gzip_comp_level指定压缩级别,取值范围是1~9,级别越高,则压缩比越高,但压缩时间也越长。

4.3 gzip_buffers

gzip_buffers 16 8k;
gzip_buffers指定用于压缩的内存缓冲区的大小。第一个参数指定缓冲区的数量,第二个参数指定每个缓冲区的大小。在压缩大文件时,如果缓冲区太小,则会产生gzip write error (0 bytes written)错误

五、缓存超时时间设置
缓存超时时间是指Nginx缓存结果的最长时间,超过此时间后,缓存将被视为无效,并且需要重新生成缓存。在Nginx中,可以通过以下两个选项来设置缓存超时时间。

5.1 proxy_cache_path

proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m;
proxy_cache_path指定缓存文件的路径和缓存区的大小。levels=1:2表示在缓存目录中创建两级子目录,以减少单个目录中文件的数量。keys_zone指定缓存区名称和大小。

5.2 proxy_cache_valid

proxy_cache_valid 200 304 12h;
proxy_cache_valid指定在没有新的响应时,缓存文件可以保持有效的时间。第一个参数可以是HTTP状态码或状态码范围,第二个参数是子状态码,第三个参数是缓存的有效时间。在本例中,200和304状态码的响应将被缓存12小时

六、nginx Client 参数设置
client_max_body_size

默认 1M,表示客户端请求服务器最大允许大小,若超过所设定的大小,返回413错误。

client_body_buffer_size

Nginx分配给请求数据的Buffer大小,如果请求的数据小于client_body_buffer_size直接将数据先在内存中存储。如果请求的值大于client_body_buffer_size小于client_max_body_size,就会将数据先存储到临时文件中

client_body_temp

大于client_body_buffer_size临时文件指定路径,默认该路径值是/tmp/

client_header_timeout

读取请求头的超时时间,若超过所设定的大小,返回408错误。

client_body_timeout

读取请求实体的超时时间,若超过所设定的大小,返回413错误

标签:缓存,Nginx,参数,proxy,timeout,gzip,超时
From: https://www.cnblogs.com/walkersss/p/18189515

相关文章

  • 在Linux中,如何配置Apache或Nginx Web服务器?
    配置Apache或NginxWeb服务器涉及到多个方面,包括安装、基本设置、虚拟主机配置、性能优化等。以下是配置这两种流行Web服务器的一般步骤:1.ApacheWeb服务器配置安装Apache:对于基于Debian的系统(如Ubuntu):sudoapt-getupdatesudoapt-getinstallapache2对于基于Red......
  • 使用TypeScript编写一个函数getPackageSize,该函数接收一个配置对象packageOpt作为参数
    使用TypeScript编写一个函数getPackageSize,该函数接收一个配置对象packageOpt作为参数,用于获取指定文件夹中所有文件的总大小,并根据配置决定是否返回已转换单位的大小值或直接通过回调函数返回字节大小。下面是一个基于Node.js环境的实现示例,因为直接在浏览器环境中操作文件系统......
  • 获取任意bmp图片的参数函数设计
    /**@Author:[email protected]*@Date:2024-05-0814:24:52*@LastEditors:[email protected]*@LastEditTime:2024-05-1118:57:02*@FilePath:\数据结构text\text,.c*@Description:这是默认设置,请设置`customMade`,打开koroFileHeader查看配置进行设......
  • 基于PG开发数据库中出现PSQLException: 错误,无法确定参数$1的数据类型
    问题描述在开发接口适配瀚高数据库时,出现此错误:同样的xml文件在达梦、金仓、Mysql中使用模糊查询时未发现错误;...likeconcat('%',#{name},'%')后经排查与数据库连接中:jdbc:highgo://.../test?stringtype=unspecified存在联系。加入``是为了避免ERROR:columnisofty......
  • linux安装nginx
    1:下载http://nginx.org/en/download.html2:解压(随便在哪个目录下运行都可以) 3:下载nginx运行环境(随便在哪个目录下运行都可以)yum-yinstallgccgcc-c++pcrepcre-develzilbzlib-developensslopenssl-devel  因为nginx是用c语言编写的,所以要装c语言运行环境。 4......
  • 4-系统资源调优与内核参数配置
    4.系统资源调优与内核参数配置4.系统资源调优与内核参数配置ulimit查看ulimit-a其中maxuserprocesses项由系统自动定义,用户设定值超出系统定义值则不生效/etc/security/limits.conf/etc/security/limits.d/90-nproc.conf内核参数调优常见案例kernel:ip_conntrack:t......
  • 3-3nginx自身健康检查
    3.3nginx自身健康检查查看服务器状态信息编译安装时使用--with-http_stub_status_module,开启状态页面模块修改Nginx配置文件,定义状态页面vim/usr/local/nginx/conf/nginx.conf……location/status{    #表示http://IP/status  stub_status;}……启......
  • nginx常用全局变量
    nginx常用全局变量$args请求中的参数,如www.123.com/1.php?a=1&b=2的$args就是a=1&b=2$content_lengthHTTP请求信息里的"Content-Length"$conten_typeHTTP请求信息里的"Content-Type"$document_rootnginx虚拟主机配置文件中的root参数对应的值$document_uri当前请求......
  • nginx升级
    nginx升级新版本源码目录./configure--user=nginx\--group=nginx\--prefix=/usr/local/nginx\--with-http_ssl_module\--with-openssl=/usr/local/openssl-1.1.1o\--pid-path=/var/run/nginx.pidmake mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/`......
  • jvm调优参数
    目录1.java进程命令行启动2.java调优参数3.说明4.垃圾回收算法5.复制算法过程6.垃圾对象的定义7.引用和可触及性的强度8.STW1.java进程命令行启动java[-options]main_class_name[args...]2.java调优参数JVM的-X参数是非标准参数,在不同版本的jvm中,参数可能会有所不同,可......