Maison > titres > Optimisation Nginx du site PHP à haute concurrence et à fort trafic

Optimisation Nginx du site PHP à haute concurrence et à fort trafic

无忌哥哥
Libérer: 2018-06-27 14:53:24
original
2413 Les gens l'ont consulté

Notre site peut actuellement gérer des dizaines de millions de PV et des millions de concurrence. J'ai un peu d'expérience en optimisation php+nginx, je vais donc l'écrire pour faire quelques enregistrements.

1.Les sockets TCP et les sockets Unix

Les sockets Unix offrent de meilleures performances que les sockets TCP (car il y a moins de lecture et d'écriture de données d'E/S et moins de changement de contexte).

upstream backend 
{ 
  server unix:/var/run/fastcgi.sock; 
  # server 127.0.0.1:8080; 
}
Copier après la connexion

2. Désactivez ou optimisez access_log

Lors d'un accès avec un trafic important, un accès plus important entraînera la lecture et l'écriture du journal d'accès sur de très grandes quantités de disque. Si la journalisation n'est pas nécessaire, elle peut être désactivée.

access_log off; 
log_not_found off;
Copier après la connexion

ou activez la mise en mémoire tampon

access_log /var/log/nginx/access.log main buffer=32k;
Copier après la connexion

3. Activez Gzip

gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.0;
gzip_comp_level 2;
gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;
gzip_vary on;
gzip_proxied expired no-cache no-store private auth;
gzip_disable "MSIE [1-6]\.";
Copier après la connexion


4.

fastcgi_buffers 256 16k; 
fastcgi_buffer_size 128k; 
fastcgi_connect_timeout 3s; 
fastcgi_send_timeout 120s; 
fastcgi_read_timeout 120s; 
fastcgi_busy_buffers_size 256k; 
fastcgi_temp_file_write_size 256k;
Copier après la connexion

5. Optimiser les processus de travail

nginx est multi-processus plutôt que multithread Nous devons optimiser la configuration liée aux processus comme suit.

Regardez d'abord le nombre de processeurs sur le serveur.

cat /proc/cpuinfo | grep processor
Copier après la connexion

Ensuite, définissez worker_processes, et le nombre de processus est le nombre de processeurs obtenus. work_connections est le nombre maximum de connexions que chaque processus peut ouvrir, qui peut être augmenté. Voici une référence.

# We have 16 cores 
worker_processes 16; 
# connections per worker 
events 
{ 
  worker_connections 4096; 
  multi_accept on; 
}
 记住multi_accept 必须打开。
Copier après la connexion
Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal