Optimisation du service de site Web Nginx (délai de connexion, modification du nombre de processus, compression de page Web, optimisation des paramètres fpm)

1. Délai de connexion

HTTP a un mode KeeepAlive, qui indique au serveur Web de garder la connexion TCP ouverte après le traitement d'une requête.
S'il accepte d'autres demandes du client, le serveur utilisera cette connexion non fermée sans établir une autre connexion.
KeepAlive reste ouvert pendant un certain temps, ils occuperont des ressources pendant cette période de temps, en occuper trop affectera les performances.

vim /usr/local/nginx/conf/nginx.conf
http {
......
     keepalive_timeot 65 180;
	 client_header_timeout 80;
	 client_body_timeout 80;
......
}
systemctl restart nginx

Insérez la description de l'image ici
Insérez la description de l'image ici

  • keepalive_timeout —— Spécifiez le délai d'expiration de KeepAlive. Spécifiez la durée de chaque connexion TCP et le serveur fermera la connexion après cette heure. La valeur par défaut de Nginx est de 65 secondes. Certains navigateurs ne tiennent que 60 secondes au maximum, il peut donc être défini sur 60 secondes. S'il est défini sur 0, la connexion keepalive est interdite.
  • Le deuxième paramètre (facultatif) -spécifie la valeur de temps dans l'en-tête de réponse Keep-Alive: timeout = time. Cet en-tête permet à certains navigateurs de fermer activement la connexion, afin que le serveur n'ait pas à fermer la connexion. Sans ce paramètre, Nginx n'enverra pas d'en-têtes de réponse Keep-Alive.
  • client_header_timeout —— Le délai d'attente du client pour envoyer un en-tête de requête complet au serveur. Si le client n'envoie pas un en-tête de demande complet dans le délai spécifié, Nginx renvoie HTTP 408 (Request Timed out).
  • client_body_timeout —— Spécifiez le délai d'expiration pour l'envoi du corps de la requête une fois que le client a établi une connexion avec le serveur. Si le client n'envoie aucun contenu dans le délai spécifié, Nginx renvoie HTTP 408 (Request Timed out).

Deux, changez le nombre de processus

cat /proc/cupinfo | grep -c "physical id"       #查看cpu核数
ps aux | grep nginx                             #查看nginx主进程中包含几个子进程

vim /usr/local/nginx/conf/nginx.conf 
worker_processes 2;                 #修改为核数相同或者2倍
worker_cpu_affinity 01 10;          #设置每个进程由不同cpu处理,进程数配为4时0001 0010 0100 1000

Insérez la description de l'image ici

Troisièmement, configurer la compression des pages Web

vim /usr/local/nginx/conf/nginx.conf
http {
......
   gzip on;                #取消注释,开启gzip压缩功能
   gzip_min_length 1k;     #最小压缩文件的大小
   gzip_buffers 4 64k;     #压缩缓冲区,大小为4个64k缓冲区
   gzip_http_version 1.1;  #压缩版本(默认1.1,前端如果是squid2.5请使用1.0)
   gzip_comp_level 6;      #压缩比率
   gzip_vary on;           #支持前端缓存服务器存储压缩页面
   gzip_types text/plain text/javascript application/x-javascript text/css text/xml application/xml application/xml+rss image/jpg image/jpeg image/png image/gif application/x-httpd-php application/javascript application/json;  #压缩类型,表示哪些网页文档启用压缩功能
 ......
}  

cd /usr/local/nginx/html
先将game.jpg文件传到/usr/local/nginx/html目录下
vim index.html
......
<img src="game.jpg"/>           #网页中插入图片
</body>
</html>

systemctl restart nginx

在Linux系统中,打开火狐浏览器,右击点查看元素
选择网络 ---> 选择 HTML、WS、其他
访问 http://196.168.153.10 ,双击200响应消息查看头包含 Content-Encoding:gzip

Insérez la description de l'image ici
Insérez la description de l'image ici
Insérez la description de l'image ici

Insérez la description de l'image ici

Quatre, optimisation des paramètres fpm

vim /usr/local/php/etc/php-fpm.conf 
pid = run/php-fpm.pid

vim /usr/local/php/etc/php-fpm.d/www.conf
pm = dynamic                    # 96行,fpm进程启动方式,动态的
pm.max_children=20              #107行,fpm进程启动的最大进程数
pm.start_servers = 5            #112行,动态方式下启动时默认开启的进程数,在最小和最大之间
pm.min_spare_severs = 2         #117行,动态方式下最小空闲进程数
pm.max_spare_severs = 8         #122行,动态方式下最大空闲进程数

kill -USR2 `cat /usr/local/php/var/run/php-fpm.pid`   #重启php-fpm 
netstat -anpt | grep 9000

Je suppose que tu aimes

Origine blog.csdn.net/weixin_51613313/article/details/112596033
conseillé
Classement