如何配置Nginx的Keepalive?

  • Post category:Linux

配置 Nginx 的 Keepalive 的过程如下:

1. 打开 Nginx 配置文件

打开 Nginx 配置文件(默认为 /etc/nginx/nginx.conf)。

2. 配置 keepalive

http 段中编辑以下内容以启用 keepalive:

http {
    server {
        listen 80;
        server_name example.com;

        # 开启 keepalive
        keepalive_timeout 65;

        location / {
            proxy_pass http://localhost:3000;
        }
    }
}

在这个示例中,我们使用 keepalive_timeout 指令来启用 keepalive,并将其设置为 65 秒。

3. 重新加载 Nginx

保存配置文件并重新加载 Nginx:

sudo service nginx reload

现在你已经成功地配置了 Nginx 的 keepalive。

以下是两个示例:

示例 1:使用 keepalive 代理到 Node.js 应用程序

这是一个在 Nginx 前面运行的 Node.js 应用程序的示例:

http {
    upstream node {
        server 127.0.0.1:3000;
        keepalive 64;
    }

    server {
        listen 80;
        server_name example.com;

        location / {
            proxy_pass http://node;
        }
    }
}

在这个示例中,我们使用 upstream 块来定义 Node.js 应用程序的服务器,并使用 keepalive 指令来启用 keepalive,并将其设置为 64 秒。

示例 2:使用 keepalive 代理到 PHP 应用程序

这是一个在 Nginx 前面运行的 PHP 应用程序的示例:

http {
    upstream php {
        server 127.0.0.1:9000;
        keepalive 64;
    }

    server {
        listen 80;
        server_name example.com;

        location / {
            proxy_pass http://php;
            proxy_set_header Connection "";
            proxy_http_version 1.1;
        }
    }
}

在这个示例中,我们使用 upstream 块来定义 PHP 应用程序的服务器,并使用 keepalive 指令来启用 keepalive,并将其设置为 64 秒。

另外,我们需要在 location 块中设置 proxy_set_header Connection "",这是因为大多数后端服务器会将 keep-alive 从请求头中删除。我们还需要将 proxy_http_version 字段设置为 1.1 版本,以确保 keepalive 能够正常工作。