Web コンテナは、Web アプリケーションの管理とデプロイに使用される Web サーバー (Python の Web コンテナには web.py などが含まれます) とより正確に呼ばれます。
つまり、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 サイトの他の関連記事を参照してください。