ホームページ  >  記事  >  PHP の高い同時実行性と高トラフィックのサイト nginx の最適化

PHP の高い同時実行性と高トラフィックのサイト nginx の最適化

无忌哥哥
无忌哥哥オリジナル
2018-06-27 14:53:242392ブラウズ

私たちのサイトは現在、数千万のPVと数百万の同時実行を処理できます。私はphp+nginxの最適化について少し経験があるので、いくつかの記録を残すために書き留めておきます。

1.TCP ソケットと Unix ソケット

Unix ソケットは、TCP ソケットよりも優れたパフォーマンスを提供します (I/O データの読み取りと書き込みが少なく、コンテキストの切り替えが少ないため)。

upstream backend 
{ 
  server unix:/var/run/fastcgi.sock; 
  # server 127.0.0.1:8080; 
}

2. access_log を無効にするか最適化します

大量のトラフィックでアクセスすると、アクセス ログに大量のディスクの読み書きが発生します。ログ記録が必要ない場合は、無効にすることができます。

access_log off; 
log_not_found off;

またはバッファリングをオンにします

access_log /var/log/nginx/access.log main buffer=32k;

3. Gzip をオンにします

gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.0;
gzip_comp_level 2;
gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;
gzip_vary on;
gzip_proxied expired no-cache no-store private auth;
gzip_disable "MSIE [1-6]\.";


5. ワーカープロセスを最適化します


nginx はプロセスに対してマルチスレッドではなくマルチプロセスです関連 次のように構成を最適化する必要があります。

まず、サーバー上のプロセッサの数を見てください。

fastcgi_buffers 256 16k; 
fastcgi_buffer_size 128k; 
fastcgi_connect_timeout 3s; 
fastcgi_send_timeout 120s; 
fastcgi_read_timeout 120s; 
fastcgi_busy_buffers_size 256k; 
fastcgi_temp_file_write_size 256k;

次にworker_processesを設定し、プロセス数が取得したプロセッサ数になります。 worker_connections は、各プロセスが開くことができる接続の最大数であり、増やすことができます。こちらが参考になります。

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