


Explication détaillée des paramètres de configuration à haute concurrence de nginx
1. De manière générale, les éléments suivants du fichier de configuration nginx sont plus efficaces pour l'optimisation :
1. worker_processes 8 ;
Il est recommandé de spécifier le nombre de processus nginx en fonction. au nombre de processeurs, généralement un multiple de celui-ci (par exemple, 2 processeurs quad-core comptent pour 8).
2. worker_cpu_affinity 00000001 0000001000000100 00001000 00010000 00100000 01000000 10000000 ;
Allouer le processeur à chaque processus. Dans l'exemple ci-dessus, 8 processus sont alloués. à 8 processeurs, vous pouvez bien sûr en écrire plus, ou Distribuez un processus
sur plusieurs processeurs.
3. worker_rlimit_nofile65535;
Cette commande fait référence au nombre maximum de descripteurs de fichiers ouverts par un processus nginx. La valeur théorique doit être le nombre maximum de fichiers ouverts (ulimit -n) et nginx. Le nombre de processus est divisé, mais nginx n'attribue pas les requêtes de manière aussi uniforme, il est donc préférable de garder la valeur cohérente avec ulimit -n.
Cela est dû au fait que l'allocation des requêtes aux processus lors de la planification nginx n'est pas aussi équilibrée, donc si vous remplissez 10240 et que la simultanéité totale atteint 30 000 à 40 000, le nombre de processus peut dépasser 10 240 et une erreur 502 sera restitué.
Sélectionnez et interrogez l'appartenance au modèle d'événement standard Si le courant existe. plus de méthode efficace dans le système, nginx choisira select ou poll
B) Modèle d'événement efficace
Kqueue : utilisé dans FreeBSD 4.1+, OpenBSD 2.9+, NetBSD2.0 et MacOS X. MacOS utilisant le système X à double processeur l'utilisation de kqueue peut provoquer un crash du noyau.
Epoll : utilisé dans les systèmes du noyau Linux version 2.6 et ultérieures.
Le nombre maximum de sockets TCP dans le système qui ne sont associés à aucun descripteur de fichier utilisateur. Si ce nombre est dépassé, la connexion orpheline sera immédiatement réinitialisée et un message d'avertissement sera imprimé. Cette limite sert uniquement à empêcher les attaques DoS simples. Vous ne pouvez pas trop vous y fier ou réduire artificiellement cette valeur. Vous devez augmenter cette valeur (si vous augmentez la mémoire).
net.ipv4.tcp_max_syn_backlog = 262144
La valeur maximale enregistrée pour les demandes de connexion n'ayant pas encore reçu d'accusé de réception du client. Pour les systèmes dotés de 128 Mo de mémoire, la valeur par défaut est 1 024 et pour les systèmes dotés de petite mémoire, elle est de 128.
net.ipv4.tcp_timestamps = 0
Les horodatages peuvent éviter le retour à la ligne des numéros de séquence. Une liaison à 1 Gbit/s rencontrera certainement des numéros de séquence qui ont été utilisés auparavant. L'horodatage permet au noyau d'accepter de tels paquets « anormaux ». Il doit être désactivé ici.
net.ipv4.tcp_synack_retries = 1
Afin d'ouvrir une connexion avec le homologue, le noyau doit envoyer un SYN avec un ACK en réponse au SYN précédent. Il s’agit de la deuxième poignée de main de la soi-disant poignée de main à trois. Ce paramètre détermine le nombre de paquets SYN+ACK envoyés avant que le noyau n'abandonne la connexion.
net.ipv4.tcp_syn_retries = 1
Le nombre de paquets SYN à envoyer avant que le noyau n'abandonne l'établissement de la connexion.
net.ipv4.tcp_fin_timeout = 1
Si le socket doit être fermé par l'extrémité locale, ce paramètre détermine combien de temps il reste dans l'état FIN-WAIT-2. L'homologue peut commettre des erreurs et ne jamais fermer la connexion, voire même planter de manière inattendue. La valeur par défaut est de 60 secondes. 2.2 La valeur habituelle pour le noyau est de 180 secondes. 3 Vous pouvez appuyer sur ce paramètre, mais rappelez-vous que même si votre machine est un serveur WEB peu chargé, il existe un risque de débordement de mémoire dû à un grand nombre de sockets morts - FIN -. WAIT-2 est moins dangereux que FIN-WAIT-1 car il ne peut consommer que jusqu'à 1,5 Ko de mémoire, mais sa durée de vie est plus longue.
net.ipv4.tcp_keepalive_time = 30
Lorsque keepalive est activé, la fréquence à laquelle TCP envoie des messages keepalive. La valeur par défaut est de 2 heures.
3. Un paramètre complet d'optimisation du noyau est publié ci-dessous :
vi /etc/sysctl.conf Dans CentOS5.5, tout le contenu peut être effacé et directement remplacé par le contenu suivant :
net.ipv4.ip_forward = 0
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
kernel.sysrq = 0
kernel.core_uses_pid = 1
net.ipv4.tcp_syncookies = 1
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.shmmax = 68719476736
kernel.shmall = 4294967296
net.ipv4 .tcp_max_tw_buckets = 6000
net.ipv4.tcp_sack = 1
net.ipv4.tcp_window_scaling = 1
net.ipv4.tcp_rmem = 4096 87380 4194304
net.ipv4.t cp_wmem = 4096 16384 4194304
net.Core.wmem_Default = 8388608
Net.Core.rmem_default = 8388608
Net.Core.rmem_max = 16777216
Net.wmem_max = 16777216 net.Core.netdev_max_ arriéré = 262144
net.core.somaxconn = 262144
net.ipv4.tcp_max_orphans = 3276800
net.ipv4.tcp_max_syn_backlog = 262144
net.ipv4.tcp_timestamps = 0
net.ipv4.tcp_s ynack_ret ries = 1
net.ipv4.tcp_syn_retries = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_mem = 94500000 915000000 927000000
net.ip v4.tcp_fin_timeout = 1
net.ipv4.tcp_keepalive_time = 30
net.ipv4.ip_local_port_range = 1024 65000
/sbin /sysctl -p
au nofile local 65535
* hard nofile 65535
* soft nproc 65535
Lequel utiliser ? La première méthode n'a aucun effet dans CentOS. Utilisez la troisième méthode. Elle est efficace, et la deuxième méthode est efficace dans Debian
# ulimit -n
65535
. # ulimit -u
65535
Remarque : La commande ulimit elle-même a des paramètres doux et durs. Ajoutez -H pour dur, ajoutez -S pour doux. est une limite souple
la limite souple fait référence à la valeur de réglage efficace actuelle du système. La valeur limite stricte peut être abaissée par les utilisateurs ordinaires. Mais il ne peut pas être augmenté. La limite souple ne peut pas être supérieure à la limite stricte. Seul l'utilisateur root peut augmenter la valeur de la limite stricte.
5. Ce qui suit est un simple fichier de configuration nginx :
utilisateur www www;
worker_processes 8;
worker_cpu_affinity 00000001 00000010 00000100 00001000 0001000000100000
01000000;
error_log /www/log/ng inx_error.log crit;
pid /usr/local/ nginx/nginx.pid;
worker_rlimit_nofile 204800;
events
{
utiliser epoll;
worker_connections 204800;
}
http
{
inclure le mime. types;
default_type application/octet-stream;
charset utf-8;
server_names_hash_bucket_size 128;
client_header_buffer_size 2k;
large_client_header_buffers 4 4k;
client_max_body_size 8m;
s fichier de fin activé ;
tcp_nopush activé;
keepalive_timeout 60;
fastcgi_cache_path /usr/local/nginx/fastcgi_cachelevels=1:2
keys_zone=TEST:10m
inactive=5m;
fastcgi_connect_timeout 300 ;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
fastcgi_buffer_size 4k;
fastcgi_buffers 8 4k;
fastcgi_busy_buffers_size 8k;
fastcgi_temp_file_write_size 8k;
fastcgi_cache TEST;
fastcgi_cache_valid 200 302 1h;
fastcgi_cache_valid 301 1d;
fastcgi_cache_valid any 1m;
fastcgi_cache_min_uses 1;
fastcgi_cache_use_stale timeout d'erreur invalid_headerhttp_500;
open_file_cache max=204800 inactive=20s;
open_file_cache_min_uses 1;
open_file_cache_valid 30s;
tcp_nodelay activé;
gzip activé;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.0;
gzip_comp_level 2;
gzip_types text/ application simple/x -javascript text/cssapplication/xml;
gzip_vary on;
serveur
{
écouter 8080;
nom_serveur backup.aiju.com;
index index.php index.htm;
root /www/html/;
emplacement /status
{
stub_status sur;
>
emplacement ~ .*.(php|php5)?$
{
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fcgi.conf;
}
emplacement ~ .*.(gif|jpg|jpeg|png|bmp|swf|js |css)$
{
expire 30j;
}
log_format access '$remote_addr -- $remote_user [$time_local]"$request" '
'$status $body_bytes_sent "$http_referer " '
'"$http_user_agent" $http_x_forwarded_for';
access_log /www/log/access.log access;
}
}
六、关于FastCGI 的几个指令:
fastcgi_cache_path /usr/local/nginx/fastcgi_cachelevels=1:2keys_zone=TEST:10minactive=5m;
这个指令为FastCGI构等级,关键字区域
fastcgi_connect_timeout 300;
指定连接到后端FastCGI 的超时时间。
fastcgi_send_timeout 300;
向FastCGI FastCGI 传送请求的超时时间。
fastcgi_read _timeout 300;
接收FastCGI 应答的超时时间,这个值是指
fastcgi_buffer_size 4k;
指定读取FastCGI应答第一一般第一部分应答不会超过1k ,由于页面大小为4k,所以这里设置为4k。
fastcgi_buffers 8 4k;
指定本地需要用多少和多大的缓冲区来缓冲FastCGI 的应答。
fastcgi_busy_buffers_size 8k; temp_file_write_size 8k;
avec fastcgi_temp_path Il s'agit d'un test fastcgi_buffers.
fastcgi_cache TEST
FastCGI一个名称。个人感觉开启缓存非常有用,可以有效降低CPU 负载,并且防止502 错误。
fastcgi_cache_valid 200 302 1h;
fastcgi_cache_valid 301 1d;fastcgi_cache_valid any 1m;
为指定的应答代码指定缓存时间,如上例中将200,302 应答缓存一小时,301 应答缓存1 天,其他为1 分钟。
fastcgi_cache_min_uses 1;
缓存在fastc gi_cache_path est inactif et contient des fichiers inactifs.
fastcgi_cache_use_stale error timeout invalid_header http_500;
不知道这个参数的作用,猜想Le logiciel nginx est également disponible pour les applications FastCGI et FastCGI. Il s'agit d'une application php-fpm qui utilise FastCGI et d'une application Web.值:
同时处理的并发请求数,即它将开启最多60 个子线程来处理并发连接。
最多打开文件数。
每个进程在重置之前能够执行的最多请求数。
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds





Comment configurer un nom de domaine NGINX sur un serveur cloud: Créez un enregistrement A pointant vers l'adresse IP publique du serveur cloud. Ajoutez des blocs d'hôtes virtuels dans le fichier de configuration Nginx, en spécifiant le port d'écoute, le nom de domaine et le répertoire racine du site Web. Redémarrez Nginx pour appliquer les modifications. Accéder à la configuration du test de nom de domaine. Autres notes: Installez le certificat SSL pour activer HTTPS, assurez-vous que le pare-feu autorise le trafic Port 80 et attendez que la résolution DNS prenne effet.

Comment confirmer si Nginx est démarré: 1. Utilisez la ligne de commande: SystemCTl Status Nginx (Linux / Unix), netStat -ano | Findstr 80 (Windows); 2. Vérifiez si le port 80 est ouvert; 3. Vérifiez le message de démarrage NGINX dans le journal système; 4. Utilisez des outils tiers, tels que Nagios, Zabbix et Icinga.

Vous pouvez interroger le nom du conteneur Docker en suivant les étapes: répertorier tous les conteneurs (Docker PS). Filtrez la liste des conteneurs (à l'aide de la commande grep). Obtient le nom du conteneur (situé dans la colonne "Noms").

Les méthodes qui peuvent interroger la version Nginx sont: utilisez la commande nginx -v; Afficher la directive de version dans le fichier nginx.conf; Ouvrez la page d'erreur Nginx et affichez le titre de la page.

Le démarrage d'un serveur Nginx nécessite différentes étapes en fonction des différents systèmes d'exploitation: Système Linux / Unix: Installez le package NGINX (par exemple, en utilisant Apt-Get ou Yum). Utilisez SystemCTL pour démarrer un service NGINX (par exemple, sudo systemctl start nginx). Système Windows: téléchargez et installez les fichiers binaires Windows. Démarrer Nginx à l'aide de l'exécutable Nginx.exe (par exemple, nginx.exe -c conf \ nginx.conf). Peu importe le système d'exploitation que vous utilisez, vous pouvez accéder au serveur IP

Comment configurer Nginx dans Windows? Installez Nginx et créez une configuration d'hôte virtuelle. Modifiez le fichier de configuration principale et incluez la configuration de l'hôte virtuel. Démarrer ou recharger nginx. Testez la configuration et affichez le site Web. Activer sélectivement SSL et configurer les certificats SSL. Définissez sélectivement le pare-feu pour permettre le trafic Port 80 et 443.

Créer un conteneur dans Docker: 1. Tirez l'image: docker pull [Nom du miroir] 2. Créer un conteneur: docker run [Options] [Nom du miroir] [Commande] 3. Démarrez le conteneur: docker start [Nom du conteneur]

Étapes de démarrage du conteneur Docker: Tirez l'image du conteneur: Exécutez "Docker Pull [Mirror Name]". Créer un conteneur: utilisez "Docker Create [Options] [Mirror Name] [Commandes et paramètres]". Démarrez le conteneur: exécutez "docker start [nom de conteneur ou id]". Vérifiez l'état du conteneur: vérifiez que le conteneur s'exécute avec "Docker PS".
