ホームページ  >  記事  >  運用・保守  >  nginx は Web コンテナですか?

nginx は Web コンテナですか?

(*-*)浩
(*-*)浩オリジナル
2019-07-15 10:16:545522ブラウズ

Web コンテナは、Web アプリケーションの管理とデプロイに使用される Web サーバー (Python の Web コンテナには web.py などが含まれます) とより正確に呼ばれます。

nginx は Web コンテナですか?

つまり、Nginx は Web コンテナです。公式の紹介では、Nginx は軽量の Web サーバー/リバース プロキシ サーバーおよび電子サーバーです。 . BSD のようなライセンスに基づいてリリースされたメール (IMAP/POP3) プロキシ サーバー。

nginx の特徴は、メモリ占有量が少なく、強力な同時実行機能を備えていることですが、実際、nginx の同時実行機能は、同じ種類の Web サーバー間でより優れたパフォーマンスを発揮します。

中国本土の nginx Web サイトのユーザーには、Baidu、JD.com、Sina、NetEase、Tencent、Taobao などが含まれます。

以下は、静的ページを処理する Web コンテナーとして機能する Nginx の例です。

私は、Linux カーネル パラメーターの設定、nginx パラメーターの設定、php-fpm の設定、nginx ソース コードの変更と再コンパイルなど、他の人のチューニング体験を数多く読みました。

まずは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;
}
}

静的リソースにアクセスする際、worker_processとworker_connectionsが正しく設定されている前提で、最大のパフォーマンス向上は

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

このいくつかの項目、キャッシュファイルリソース。爆発的なパフォーマンスの向上をテストするために ab を使用しました。当初は 1,000 件のリクエストと 1,000 件の同時リクエストを送信するのに 10 秒かかりましたが、これを追加するとすぐに 0.4 になりました。スループット レートが数十 K から 1M に変化しました。シングルコア 1G 仮想マシン構成を使用しています。 。 。

では、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;

効率を大幅に向上できる

nginx の効率を向上させる最も効果的な方法は、さまざまなキャッシュを有効にすることです。

Nginx 関連の技術記事の詳細については、Nginx の使用法チュートリアル 列にアクセスして学習してください。

以上がnginx は Web コンテナですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。