nginxプロセスの数、に従って指定することをお勧めしますCPU の数。通常はその倍数になります。
各プロセスにCPUを割り当てる 上記の例では、8つのプロセスを8つのCPUに割り当てています。もちろん、複数書いたり、1つのプロセスを複数のCPUに割り当てたりすることもできます。
このコマンドは、nginx プロセスによって開かれるファイル記述子の最大数を指します。理論値は、開いているファイルの最大数 (ulimit -n) を nginx プロセスの数で割った値である必要があります。ただし、nginx 割り当てリクエストはそうではありません。値は ulimit -n と一致するように保つのが最善です。
epoll の I/O モデルを使用することは言うまでもありません。
プロセスごとに許可される最大接続数。理論的には、nginx サーバーごとの最大接続数は、worker_processes*worker_connections です。
キープアライブ タイムアウト。
クライアント リクエスト ヘッダーのバッファ サイズは、システムのページング サイズに応じて設定できます。ただし、一般的なシステムのページング サイズは 1k を超えません。ここでページングサイズを設定します。ページング サイズは、getconf PAGESIZE コマンドで取得できます。
これは、開いているファイルのキャッシュを指定します。デフォルトでは有効になっていません。非アクティブとは、ファイルがリクエストされていない期間と一致するように指定することをお勧めします。キャッシュが削除される前に。
これは、キャッシュされた有効な情報を確認する頻度を指します。
open_file_cache ディレクティブの非アクティブなパラメーター中にファイルが使用される最小回数。この数を超えると、ファイルが使用されていない場合、上記の例と同様にファイル記述子が常にキャッシュ内で開かれます。非アクティブな時間が経過すると削除されます。
timewaitの数、デフォルトは180000です。
システムが開くことを許可されるポートの範囲。
高速リサイクルのために timewait を有効にします。
再利用を有効にします。新しい TCP 接続に TIME-WAIT ソケットを再利用できるようにします。
SYN Cookie を有効にする SYN 待機キューがオーバーフローした場合に、それを処理できるように Cookie を有効にします。
Web アプリケーションの listen 関数のバックログは、カーネル パラメーターの net.core.somaxconn をデフォルトで 128 に制限し、nginx によって定義される NGX_LISTEN_BACKLOG のデフォルトは 511 であるため、この値を調整する必要があります。
各ネットワーク インターフェイスがカーネルの処理よりも速くパケットを受信した場合にキューに入れることができるパケットの最大数。
ユーザー ファイル ハンドルに関連付けられていない、システム内の TCP ソケットの最大数。この数を超えると、孤立接続は直ちにリセットされ、警告メッセージが出力されます。この制限は、単純な DoS 攻撃を防ぐためだけのものです。この値に依存しすぎたり、この値を人為的に減らしたりすることはできません (メモリを追加する場合)。
クライアントからまだ確認を受け取っていない、記録された接続リクエストの最大数。 128M のメモリを備えたシステムの場合、デフォルト値は 1024 で、メモリが小さいシステムの場合、デフォルト値は 128 です。
タイムスタンプによりシリアル番号のラップを回避できます。 1Gbps リンクでは、以前に使用されたシーケンス番号が必ず発生します。タイムスタンプにより、カーネルはそのような「異常な」パケットを受け入れることができます。ここでオフにする必要があります。
ピアへの接続を開くには、カーネルは前の SYN に対する応答として ACK を含む SYN を送信する必要があります。これは、いわゆる 3 ウェイ ハンドシェイクにおける 2 回目のハンドシェイクです。この設定は、接続を放棄する前にカーネルによって送信される SYN+ACK パケットの数を決定します。
カーネルが接続の確立を断念する前に送信された SYN パケットの数。
ソケットがローカル エンドによって閉じるように要求された場合、このパラメータはソケットが FIN-WAIT-2 状態に留まる時間を決定します。ピアがエラーを起こして接続を閉じなかったり、予期せずクラッシュしたりする可能性があります。デフォルト値は 60 秒です。 2.2 カーネルの通常の値は 180 秒です。この設定を押すことはできますが、マシンの負荷が軽い場合でも、多数のデッド ソケットによるメモリ オーバーフローの危険性があることに注意してください。 2 は、最大 1.5K のメモリしか消費できないため、FIN-WAIT-1 より危険性は低くなりますが、生存期間は長くなります。
キープアライブが有効な場合、TCP がキープアライブ メッセージを送信する頻度。デフォルトは 2 時間です。
这个指令为FastCGI缓存指定一个路径,目录结构等级,关键字区域存储时间和非活动删除时间。
指定连接到后端FastCGI的超时时间。
向FastCGI传送请求的超时时间,这个值是指已经完成两次握手后向FastCGI传送请求的超时时间。
接收FastCGI应答的超时时间,这个值是指已经完成两次握手后接收FastCGI应答的超时时间。
指定读取FastCGI应答第一部分需要用多大的缓冲区,这里可以设置为fastcgi_buffers指令指定的缓冲区大小,上面的指令指定它将使用1 个16k的缓冲区去读取应答的第一部分,即应答头,其实这个应答头一般情况下都很小(不会超过1k),但是你如果在fastcgi_buffers指令中 指定了缓冲区的大小,那么它也会分配一个fastcgi_buffers指定的缓冲区大小去缓存。
指定本地需要用多少和多大的缓冲区来缓冲FastCGI的应答,如上所示,如果一个php脚本所产生的页面大小为256k,则会为其分配16个16k的缓 冲区来缓存,如果大于256k,增大于256k的部分会缓存到fastcgi_temp指定的路径中,当然这对服务器负载来说是不明智的方案,因为内存中 处理数据速度要快于硬盘,通常这个值的设置应该选择一个你的站点中的php脚本所产生的页面大小的中间值,比如你的站点大部分脚本所产生的页面大小为 256k就可以把这个值设置为16 16k,或者4 64k 或者64 4k,但很显然,后两种并不是好的设置方法,因为如果产生的页面只有32k,如果用4 64k它会分配1个64k的缓冲区去缓存,而如果使用64 4k它会分配8个4k的缓冲区去缓存,而如果使用16 16k则它会分配2个16k去缓存页面,这样看起来似乎更加合理。
这个指令我也不知道是做什么用,只知道默认值是fastcgi_buffers的两倍。
在写入fastcgi_temp_path时将用多大的数据块,默认值是fastcgi_buffers的两倍。
开启FastCGI缓存并且为其制定一个名称。个人感觉开启缓存非常有用,可以有效降低CPU负载,并且防止502错误。但是这个缓存会引起很多问题,因为它缓存的是动态页面。具体使用还需根据自己的需求。
为指定的应答代码指定缓存时间,如上例中将200,302应答缓存一小时,301应答缓存1天,其他为1分钟。
缓存在fastcgi_cache_path指令inactive参数值时间内的最少使用次数,如上例,如果在5分钟内某文件1次也没有被使用,那么这个文件将被移除。
不知道这个参数的作用,猜想应该是让nginx知道哪些类型的缓存是没用的。 以上为nginx中FastCGI相关参数,另外,FastCGI自身也有一些配置需要进行优化,如果你使用php-fpm来管理FastCGI,可以修改配置文件中的以下值:
同时处理的并发请求数,即它将开启最多60个子线程来处理并发连接。
最多打开文件数。
每个进程在重置之前能够执行的最多请求数。
以上就介绍了nginx--优化配置示例,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。