Image

知识库 → 优化nginx服务处理请求的速度

[虚拟服务器] [VPS/VDS 上的应用]
出版日期: 26.03.2024

最佳的 nginx 设置允许您提高请求处理的速度。 通常,在共享托管上,所有设置都已由托管提供商的专家完成。 如果将站点托管在虚拟服务器上,则所有设置都是独立进行的。

为了使网站运行得更快,我们建议检查允许 nginx Web 服务器运行得更快的配置。

1. 让我们检查一下基本设置

nano /etc/nginx/nginx.conf

1.1 该选项自动确定虚拟服务器上的核心数量。

worker_processes auto;

1.2 压缩设置

        gzip on;
        gzip_vary on;
	gzip_proxied any;
	gzip_comp_level 6;
	gzip_buffers 16 8k;
	gzip_http_version 1.1;
	gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/ xml+rss text/javascript;

1.3 让我们启用http/2

让我们将 http2 添加到 Web 主机文件的服务器部分,位于监听行中的 ssl 之后。 仅应为 https 添加此选项。

server {
    listen 89.xx.77.xx:443 ssl http2;
    listen [2a01:xx:4:x::xx]:443 ssl http2;

1.3.1 我们来检查一下HTTP2的运行情况

nginx -t
service nginx restart
curl -I https://your-domain.tld

我们得到以下输出:

HTTP/2 200 
server: nginx
content-type: text/html; charset=UTF-8
vary: Accept-Encoding
cache-control: no-cache, private
date: Tue, 26 Mar 2024 10:39:35 GMT

1.4 我们来配置最大连接数

默认是768,我们把这个数字改成操作系统指定的数字。

1.4.1 让我们检查一下值

ulimit -n

1024

1.4.2 在nginx设置文件中设置

nano /etc/nginx/nginx.conf
events {
	worker_connections 1024;
}

1.5 调整缓冲区大小

默认情况下,nginx 的缓冲区大小为一页内存。 为了使其能够处理来自缓存的更多请求,我们将更改主机的 http {} 部分内的值。

nano /etc/nginx/conf.d/domain-tld.conf
http {
...    

client_body_buffer_size 10K;
client_header_buffer_size 1k;
client_max_body_size 8m;
large_client_header_buffers 4 4k;

...
}

1.6 设置请求处理的超时时间

在高负载和低等待时间的情况下,当 nginx Web 服务器尚未收到 php-fpm 的响应时,客户端可能会收到错误消息,在这种情况下,应增加等待时间。

请注意,增加等待时间可能会在发生洪水或 ddos​​ 攻击时产生负面影响,因为这将需要服务器提供更多资源。

nano /etc/nginx/conf.d/domain-tld.conf
http {
...    

client_body_timeout 12;
client_header_timeout 12;
keepalive_timeout 15;
send_timeout 10;

...
}

现在您的 nginx 将以更快的速度处理请求。 进行所有更改后,检查配置文件是否有错误并重新启动服务以应用更改。

nginx -t
service nginx restart

准备好。





暂时没有评论