nginxで設定する必要があるパラメータの概要
1: メインパラメータ
1.1 ワーカープロセス
# 指定nginx开启worker工作子进程数量# number默认1,建议配置数量与CPU核心数量相等worker_processes number复制代码
1.2 ワーカー_cpu_affinity
# nginx默认未开启利用多核CPU,开启某个核心该位置标志为1即可# worker_processes 最多开启8个,所以多核最多8个也就够用。示例配置开启4核worker_cpu_affinity 00000001 00000010 00000100 00001000复制代码
1.3 ワーカー優先度
# 进程优先级,数值越低占用资源越多# number默认10,值范围-20 ~ 20# 建议配置-10即可,最好别低于Linux系统进程-5优先级worker_priority number复制代码
1.4 worker_rlimit_nofile
# 一个子进程可以打开文件描述限制# nginx默认一个子进程打开文件描述限制数量 = (ulimt -u) / worker_processes# 因为进程处理连接任务很多时候不均衡,所以最好设置为与系统数量一致worker_rlimit_nofile (ulimit -u)复制代码
1.5 error_log
# file指定日志输出文件位置,默认logs/error.log# level指定日志输出最低级别,默认error级别。当然可以设置为debug、info等error_log file [level]复制代码
1.6 pid
# file默认值logs/pid.log,指定nginx中master进程的PID输出文件位置pid file复制代码
1.7 user
# user第二个参数user,配置nginx进程运行用户,默认nobody# group配置nginx进程运行用户组,默认nobodyuser user [group]复制代码
2: イベント パラメータ
2.1 worker_connections
# nginx指定一个子进程可处理连接数量# number默认数量1024# nginx可处理连接总数 = worker_processes * worker_connecitonsworker_connections number复制代码
2.2 accept_mutex
accept_mutex パラメータは、ワーカー プロセスが接続を処理するための受け入れミューテックス ロック スイッチです。デフォルトは 1.11.3 より前ではオンで、それ以降のバージョンではオフです
2.2.1 Jingqun 現象
Nginx では、worker_processes パラメーターを使用して複数のワーカー プロセスを構成でき、フォーク後に複数のワーカー プロセスが同じポートをリッスンします。外部接続が入ってくると、すべての子プロセスが起動されて接続を獲得し、1 つの子プロセスが accept イベントを正常に処理しない限り、子プロセスはスリープ状態に戻ります。その結果、多くの不必要なコンテキスト切り替えが発生します。これがサンダーリング ハード現象です。
2.2.2 accept lock 処理
nginx は、epoll に登録されるプロセスが 1 つだけになるように accept mutex を追加することで、サンダーリング ハード現象を回避します。つまり、接続が入ってきたとき、それを処理できる子プロセスは 1 つだけです。
尝试获取accept锁if success 在epoll中注册accept事件else 在epoll中注销accept事件 处理所有连接事件 释放accept锁复制代码
2.2.3 アクセプト ロックの欠点
アクセプト ロックは問題を完全に解決するようです。これは、サンダーリング グループ現象によって引き起こされますが、特にスループットと同時実行性が比較的高いアプリケーションでは、一部の子プロセスが非常にビジーで、一部の子プロセスが非常にアイドル状態になるという問題が発生します。一般的に言えば、これはワーカー サブプロセスの不均一な負荷の問題です。
2.2.4 構成に関する提案
- 分散アプリケーションの短い接続の場合、このパラメータをオンにするのが最善です。コンテキスト切り替えのオーバーヘッドを避けてください。
- 長時間接続するアプリケーションの場合は、ワーカーに過度の接続負荷がかかり、プロセスの CPU 使用率が高くなるのを避けるために、このパラメータをオフにすることをお勧めします。
2.3 accept_mutex_lay
accept_mutex が on に設定されている場合、アプリケーション シナリオに従って accept_mutex_lay パラメータをデバッグする必要があります。このパラメータは、すべての子プロセスが受け入れロックを再度取得するまでの時間を指定します。適切なパラメーター値は、ワーカーの負荷の不均衡の問題を軽減するのに役立ちます。デフォルト値 500ms
関連する推奨事項:nginx チュートリアル
以上がnginxで設定する必要があるパラメータの概要の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









Linuxでnginxを開始する手順:nginxがインストールされているかどうかを確認します。 systemctlを使用して、nginxを開始してnginxサービスを開始します。 SystemCTLを使用して、NGINXがシステムスタートアップでNGINXの自動起動を有効にすることができます。 SystemCTLステータスNGINXを使用して、スタートアップが成功していることを確認します。 Webブラウザのhttp:// localhostにアクセスして、デフォルトのウェルカムページを表示します。

サーバーには、要求されたリソースにアクセスする許可がなく、NGINX 403エラーが発生します。ソリューションには以下が含まれます。ファイル許可を確認します。 .htaccess構成を確認してください。 nginx構成を確認してください。 SELINUXアクセス許可を構成します。ファイアウォールルールを確認してください。ブラウザの問題、サーバーの障害、その他の可能なエラーなど、他の原因をトラブルシューティングします。

負荷分散のためにnginxを構成する方法は?アップストリームサーバープールを定義し、サーバーIPとポートを指定します。仮想ホストを定義し、接続を聞いて、上流のプールに転送します。場所を指定し、リクエストを一致させ、上流のプールに転送します。

nginxの実行ステータスを表示する方法は次のとおりです。PSコマンドを使用してプロセスステータスを表示します。 nginx configuration file /etc/nginx/nginx.confを表示します。 NGINXステータスモジュールを使用して、ステータスエンドポイントを有効にします。 Prometheus、Zabbix、Nagiosなどの監視ツールを使用します。

Windowsでnginxを構成する方法は? nginxをインストールし、仮想ホスト構成を作成します。メイン構成ファイルを変更し、仮想ホスト構成を含めます。 nginxを起動またはリロードします。構成をテストし、Webサイトを表示します。 SSLを選択的に有効にし、SSL証明書を構成します。ファイアウォールを選択的に設定して、ポート80および443のトラフィックを許可します。

エラーログは、/var/log/nginx(Linux)または/usr/local/var/log/nginx(macos)にあります。コマンドラインを使用して手順をクリーンアップします。1。元のログをバックアップします。 2。新しいログとして空のファイルを作成します。 3。nginxサービスを再起動します。自動クリーニングは、LogroTateや構成などのサードパーティツールでも使用できます。

質問への回答:304変更されていないエラーは、ブラウザがクライアントリクエストの最新リソースバージョンをキャッシュしたことを示しています。解決策:1。ブラウザのキャッシュをクリアします。 2.ブラウザキャッシュを無効にします。 3.クライアントキャッシュを許可するようにnginxを構成します。 4.ファイル許可を確認します。 5.ファイルハッシュを確認します。 6. CDNまたは逆プロキシキャッシュを無効にします。 7。nginxを再起動します。

nginxが開始されるかどうかを確認する方法:1。コマンドラインを使用します:SystemCTLステータスnginx(Linux/unix)、netstat -ano | FindStr 80(Windows); 2。ポート80が開いているかどうかを確認します。 3.システムログのnginx起動メッセージを確認します。 4. Nagios、Zabbix、Icingaなどのサードパーティツールを使用します。
