Maison  >  Article  >  Opération et maintenance  >  Nginx est-il un conteneur Web ?

Nginx est-il un conteneur Web ?

(*-*)浩
(*-*)浩original
2019-07-15 10:16:545448parcourir

Un conteneur Web devrait être plus précisément appelé un serveur Web (le conteneur Web de Python inclut web.py, etc.), qui est utilisé pour gérer et déployer des applications Web.

Nginx est-il un conteneur Web ?

Ainsi, Nginx est un conteneur Web. L'introduction officielle est que Nginx est un serveur Web/proxy inverse léger et un courrier électronique. (IMAP/POP3), serveur proxy, publié sous licence de type BSD.

Il se caractérise par une occupation moindre de mémoire et une forte capacité de concurrence. En fait, la capacité de concurrence de nginx fonctionne mieux entre les serveurs Web du même type.

Les utilisateurs des sites Web nginx en Chine continentale incluent : Baidu, JD.com, Sina, NetEase, Tencent, Taobao, etc.

Ce qui suit est un exemple de Nginx servant de conteneur Web pour traiter des pages statiques.

J'ai lu de nombreuses expériences de réglage d'autres personnes, notamment la définition des paramètres du noyau Linux, la définition des paramètres nginx, la configuration de php-fpm, la modification du code source nginx et la recompilation.

Tout d'abord, le réglage des paramètres nginx

user www www;  #worker进程的用户
worker_processes 8; #一般和CPU核数一致
worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000
01000000;
#error_log /www/log/nginx_error.log crit; #为了得到更好的IO我是关闭日志的
pid /usr/local/nginx/nginx.pid;
worker_rlimit_nofile 204800;
events
{
use epoll;
worker_connections 204800;
}
http
{
include 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;
sendfile on;
tcp_nopush on;
keepalive_timeout 60;
fastcgi_cache_path /usr/local/nginx/fastcgi_cache levels=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 error timeout invalid_header http_500;
open_file_cache max=204800 inactive=20s;
open_file_cache_min_uses 1;
open_file_cache_valid 30s;
tcp_nodelay on;
gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.0;
gzip_comp_level 2;
gzip_types text/plain application/x-javascript text/css application/xml;
gzip_vary on;
server
{
listen 8080;
server_name localhost;
index index.php index.htm;
root /www/html/;
location /status
{
stub_status on;
}
location ~ .*\.(php|php5)?$
{
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fcgi.conf;
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|js|css)$
{
expires 30d;
}
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;
}
}

Lors de l'accès à des ressources statiques, en partant du principe que Worker_proccess et Worker_connections sont définis correctement, la plus grande amélioration des performances est

open_file_cache max=204800 inactive=20s;
open_file_cache_min_uses 1;
open_file_cache_valid 30s;

Plusieurs éléments, cache ressources de fichiers. J'ai utilisé ab pour tester l'augmentation explosive des performances. Au départ, il fallait 10 secondes pour envoyer 1 000 requêtes en même temps que 1 000, mais après l'avoir ajoutée, elle est immédiatement devenue 0,4. Le débit est passé de dizaines de K à 1M. J'ai une configuration de machine virtuelle 1G monocœur. . .

Qu'en est-il de l'accès aux fichiers PHP ?

fastcgi_cache_path /usr/local/nginx/fastcgi_cache levels=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 error timeout invalid_header http_500;

peut améliorer considérablement l'efficacité

Le moyen le plus efficace d'améliorer l'efficacité de nginx est d'activer divers caches !

Pour plus d'articles techniques liés à Nginx, veuillez visiter la colonne Tutoriel d'utilisation de Nginx pour apprendre !

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!

Déclaration:
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