Maison développement back-end tutoriel php nginx高性能配置详解

nginx高性能配置详解

Jul 29, 2016 am 09:09 AM
gzip nginx open worker

Copier après la connexion
nginx配置详解
#全局配置
#高层配置
user www-data#运行用户默认配置
pid /var/run/nginx.pid;#端口号默认配置
worker_processes 8;#定义了nginx对外提供web服务时的worker进程数
#最优值取决于许多因素,包括(但不限于)CPU核的数量、存储数据的硬盘数量及负载模式
#通常设置成和cpu的数量相等(设置为"auto"将尝试自动检测它)
worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000;#将8个进程分配到8个cpu,当然可以写多个,或者将一个进程分配到多个cpu
worker_rlimit_nofile 200000;#更改worker进程的最大打开文件数限制
#如果没设置的话,这个值为操作系统的限制
#设置后你的操作系统和Nginx可以处理比“ulimit -a”更多的文件,所以把这个值设高,这样nginx就不会有"too many open files"问题了
#假如填写10240,总并发量达到3-4万时就有进程可能超过10240了,这时会返回502错误
#这个指令是指当一个nginx 进程打开的最多文件描述符数目,理论值应该是最多打开文件数(ulimit -n)与nginx 进程数相除,但是nginx 分配请求并不是那么均匀,所以最好与ulimit -n 的值保持一致
events {
worker_connections 102400; #设置可由一个worker进程同时打开的最大连接数
#如果设置了上面提到的worker_rlimit_nofile,我们可以将这个值设得很高。
#重点:最大客户数也由系统的可用socket连接数限制(~ 64K),所以设置不切实际的高没什么好处
#理论上每台nginx 服务器的最大连接数为worker_processes*worker_connections
multi_accept on; #告诉nginx收到一个新连接通知后接受尽可能多的连接
use epoll; #设置用于复用客户端线程的轮询方法
}
http { 
server_tokens off; #并不会让nginx执行的速度更快,但它可以关闭在错误页面中的nginx版本数字,这样对于安全性是有好处的
sendfile on; #可以让sendfile()发挥作用
tcp_nopush on; #告诉nginx在一个数据包里发送所有头文件,而不一个接一个的发送
tcp_nodelay on; #告诉nginx不要缓存数据,而是一段一段的发送--当需要及时发送数据时,就应该给应用设置这个属性,这样发送一小块数据信息时就不能立即得到返回值
access_log off; #设置nginx是否将存储访问日志。关闭这个选项可以让读取磁盘IO操作更快(aka,YOLO)
error_log /var/log/nginx/error.log crit;#告诉nginx只能记录严重的错误
keepalive_timeout 10; #给客户端分配keep-alive链接超时时间。服务器将在这个超时时间过后关闭链接。我们将它设置低些可以让ngnix持续工作的时间更长
client_header_timeout 10; #设置请求头的超时时间。我们也可以把这个设置低些。
client_body_timeout 10; #设置请求体的超时时间。我们也可以把这个设置低些。
reset_timedout_connection on; #告诉nginx关闭不响应的客户端连接。这将会释放那个客户端所占有的内存空间。
send_timeout 10;#指定客户端的响应超时时间。这个设置不会用于整个转发器,而是在两次客户端读取操作之间。如果在这段时间内,客户端没有读取任何数据,nginx就会关闭连接
limit_conn_zone $binary_remote_addr z>#设置用于保存各种key(比如当前连接数)的共享内存的参数。
#5m就是5兆字节,这个值应该被设置的足够大以存储(32K*5)32byte状态或者(16K*5)64byte状态。
limit_conn #为给定的key设置最大连接数。这里key是addr,我们设置的值是100,也就是说我们允许每一个IP地址最多同时打开有100个连接
include /etc/nginx/mime.types; #只是一个在当前文件中包含另一个文件内容的指令。这里我们使用它来加载稍后会用到的一系列的MIME类型
default_type text/html;#设置文件使用的默认的MIME-type
charset UTF-8; #设置头文件中的默认的字符集
gzip on; #是告诉nginx采用gzip压缩的形式发送数据。这将会减少我们发送的数据量
gzip_disable "msie6"; # 为指定的客户端禁用gzip功能。我们设置成IE6或者更低版本以使我们的方案能够广泛兼容
# gzip_static on; #告诉nginx在压缩资源之前,先查找是否有预先gzip处理过的资源
#这要求你预先压缩你的文件,从而允许你使用最高压缩比,这样nginx就不用再压缩这些文件了
gzip_proxied any; #允许或者禁止压缩基于请求和响应的响应流。我们设置为any,意味着将会压缩所有的请求。
gzip_min_length 1000; #设置对数据启用压缩的最少字节数。如果一个请求小于1000字节,
#我们最好不要压缩它,因为压缩这些小的数据会降低处理此请求的所有进程的速度
gzip_comp_level 4; #设置数据的压缩等级。这个等级可以是1-9之间的任意数值,9是最慢但是压缩比最大的。
#我们设置为4,这是一个比较折中的设置
gzip_buffers 16 8k;
gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;#设置需要压缩的数据格式
open_file_cache max=100000 inactive=20s; #打开缓存的同时也指定了缓存最大数目,以及缓存的时间。
#我们可以设置一个相对高的最大时间,这样我们可以在它们不活动超过20秒后清除掉
open_file_cache_valid 30s; #在open_file_cache中指定检测正确信息的间隔时间
open_file_cache_min_uses 2; #定义了open_file_cache中指令参数不活动时间期间里最小的文件数
open_file_cache_errors on; 
include /etc/nginx/conf.d/*.conf; 
include /etc/nginx/sites-enabled/*;
}

以上就介绍了nginx高性能配置详解,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

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

Comment autoriser l'accès au réseau externe au serveur Tomcat Comment autoriser l'accès au réseau externe au serveur Tomcat Apr 21, 2024 am 07:22 AM

Pour permettre au serveur Tomcat d'accéder au réseau externe, vous devez : modifier le fichier de configuration Tomcat pour autoriser les connexions externes. Ajoutez une règle de pare-feu pour autoriser l'accès au port du serveur Tomcat. Créez un enregistrement DNS pointant le nom de domaine vers l'adresse IP publique du serveur Tomcat. Facultatif : utilisez un proxy inverse pour améliorer la sécurité et les performances. Facultatif : configurez HTTPS pour une sécurité accrue.

Comment exécuter thinkphp Comment exécuter thinkphp Apr 09, 2024 pm 05:39 PM

Étapes pour exécuter ThinkPHP Framework localement : Téléchargez et décompressez ThinkPHP Framework dans un répertoire local. Créez un hôte virtuel (facultatif) pointant vers le répertoire racine ThinkPHP. Configurez les paramètres de connexion à la base de données. Démarrez le serveur Web. Initialisez l'application ThinkPHP. Accédez à l'URL de l'application ThinkPHP et exécutez-la.

Bienvenue sur nginx !Comment le résoudre ? Bienvenue sur nginx !Comment le résoudre ? Apr 17, 2024 am 05:12 AM

Pour résoudre l'erreur "Bienvenue sur nginx!", vous devez vérifier la configuration de l'hôte virtuel, activer l'hôte virtuel, recharger Nginx, si le fichier de configuration de l'hôte virtuel est introuvable, créer une page par défaut et recharger Nginx, puis le message d'erreur. disparaîtra et le site Web sera affiché normalement.

Comment communiquer entre les conteneurs Docker Comment communiquer entre les conteneurs Docker Apr 07, 2024 pm 06:24 PM

Il existe cinq méthodes de communication de conteneur dans l'environnement Docker : réseau partagé, Docker Compose, proxy réseau, volume partagé et file d'attente de messages. En fonction de vos besoins d'isolation et de sécurité, choisissez la méthode de communication la plus appropriée, par exemple en utilisant Docker Compose pour simplifier les connexions ou en utilisant un proxy réseau pour augmenter l'isolation.

Comment générer une URL à partir d'un fichier HTML Comment générer une URL à partir d'un fichier HTML Apr 21, 2024 pm 12:57 PM

La conversion d'un fichier HTML en URL nécessite un serveur Web, ce qui implique les étapes suivantes : Obtenir un serveur Web. Configurez un serveur Web. Téléchargez le fichier HTML. Créez un nom de domaine. Acheminez la demande.

Comment déployer le projet nodejs sur le serveur Comment déployer le projet nodejs sur le serveur Apr 21, 2024 am 04:40 AM

Étapes de déploiement de serveur pour un projet Node.js : Préparez l'environnement de déploiement : obtenez l'accès au serveur, installez Node.js, configurez un référentiel Git. Créez l'application : utilisez npm run build pour générer du code et des dépendances déployables. Téléchargez le code sur le serveur : via Git ou File Transfer Protocol. Installer les dépendances : connectez-vous en SSH au serveur et installez les dépendances de l'application à l'aide de npm install. Démarrez l'application : utilisez une commande telle que node index.js pour démarrer l'application ou utilisez un gestionnaire de processus tel que pm2. Configurer un proxy inverse (facultatif) : utilisez un proxy inverse tel que Nginx ou Apache pour acheminer le trafic vers votre application

Quelles sont les instructions les plus courantes dans un fichier docker Quelles sont les instructions les plus courantes dans un fichier docker Apr 07, 2024 pm 07:21 PM

Les instructions les plus couramment utilisées dans Dockerfile sont : FROM : créer une nouvelle image ou dériver une nouvelle image RUN : exécuter des commandes (installer le logiciel, configurer le système) COPY : copier des fichiers locaux dans l'image ADD : similaire à COPY, il peut automatiquement décompresser tar ou obtenir des fichiers URL CMD : Spécifiez la commande au démarrage du conteneur EXPOSE : Déclarez le port d'écoute du conteneur (mais pas public) ENV : Définissez la variable d'environnement VOLUME : Montez le répertoire hôte ou le volume anonyme WORKDIR : Définissez le répertoire de travail dans le conteneur ENTRYPOINT : spécifiez ce qu'il faut exécuter lorsque le conteneur démarre. Fichier exécutable (similaire à CMD, mais ne peut pas être écrasé)

Nodejs est-il accessible de l'extérieur ? Nodejs est-il accessible de l'extérieur ? Apr 21, 2024 am 04:43 AM

Oui, Node.js est accessible de l’extérieur. Vous pouvez utiliser les méthodes suivantes : Utilisez Cloud Functions pour déployer la fonction et la rendre accessible au public. Utilisez le framework Express pour créer des itinéraires et définir des points de terminaison. Utilisez Nginx pour inverser les requêtes de proxy vers les applications Node.js. Utilisez des conteneurs Docker pour exécuter des applications Node.js et les exposer via le mappage de ports.

See all articles