一般的に使用される構成項目
職場では、主に構成ファイルを通じて Nginx を扱います。次に、これらの構成要素のそれぞれの機能を理解する必要があります。 (関連する推奨事項: Linux チュートリアル )
まず第一に、nginx.conf の内容は通常次のようになります:
... ... #核心摸块 events { #事件模块 ... } http { # http 模块 server { # server块 location [PATTERN] { # location块 ... } location [PATTERN] { ... } } server { ... } } mail { # mail 模块 server { # server块 ... } }
見てみましょう。モジュールには通常どのような構成項目がありますか?
コア モジュール
user admin; #配置用户或者组 worker_processes 4; #允许生成的进程数,默认为1 pid /nginx/pid/nginx.pid; #指定 nginx 进程运行文件存放地址 error_log log/error.log debug; #错误日志路径,级别
イベント モジュール
events { accept_mutex on; #设置网路连接序列化,防止惊群现象发生,默认为on multi_accept on; #设置一个进程是否同时接受多个网络连接,默认为off use epoll; #事件驱动模型select|poll|kqueue|epoll|resig worker_connections 1024; #最大连接数,默认为512 }
#http モジュール
#
http { include mime.types; #文件扩展名与文件类型映射表 default_type application/octet-stream; #默认文件类型,默认为text/plain access_log off; #取消服务日志 sendfile on; #允许 sendfile 方式传输文件,默认为off,可以在http块,server块,location块 sendfile_max_chunk 100k; #每个进程每次调用传输数量不能大于设定的值,默认为0,即不设上限 keepalive_timeout 65; #连接超时时间,默认为75s,可以在http,server,location块 server { keepalive_requests 120; #单连接请求上限次数 listen 80; #监听端口 server_name 127.0.0.1; #监听地址 index index.html index.htm index.php; root your_path; #根目录 location ~ \.php$ { fastcgi_pass unix:/var/run/php/php7.1-fpm.sock; #fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; include fastcgi_params; } } }
#構成項目分析 ##worker_processes
worker_processes は、Nginx サービスのプロセス数を設定するために使用されます。この値は、推奨される CPU コア数です。
worker_cpu_affinity*worker\_cpu\_affinity は、CPU の作業コアを各プロセスに割り当てるために使用されます。パラメータには複数のバイナリ値があり、各グループは1 つのプロセス。各グループの各ビットはプロセスの CPU 使用率を表し、1 は使用を表し、0 は未使用を表します。したがって、worker\_cpu\_affinity0001001001001000; を使用して、プロセスを異なるコアにバインドします。デフォルトでは、ワーカー プロセスはどの CPU にもバインドされません。
worker_rlimit_nofileプロセスごとに開くファイルの最大数を設定します。設定されていない場合、上限はシステムの ulimit-n 番号で、通常は 65535 です。
worker_connectionsプロセスに理論的に許可される接続の最大数を設定します理論的には、大きいほど良いですが、worker_rlimit_nofile の値を超えることはできません。
use epollepoll を使用するようにイベント駆動モデルを設定します。 epoll は、Nginx でサポートされている高性能イベント駆動型ライブラリの 1 つです。非常に優れたイベントドリブンモデルとして評価されています。
accept_mutex offネットワーク接続のシリアル化をオフにします。オンに設定すると、複数のプロセスによる接続の競合を防ぐために、複数の Nginx プロセスがシリアル化されて接続を受け入れます。サーバー接続が少ない場合、このパラメータをオンにすると負荷がある程度軽減されます。ただし、サーバーのスループットが非常に高い場合は、効率を高めるためにこのパラメータをオフにしてください。また、このパラメータをオフにすると、リクエストが複数のワーカー間でより均等に分散されるようになります。そこで、accept_mutex をオフに設定します。
multi_accept on複数のネットワーク接続を同時に受け入れるプロセスを設定します。
Sendfile onSendfile は、Linux 2.0 以降に導入されたシステム コールで、ネットワーク送信プロセスの手順を簡素化し、サーバーのパフォーマンスを向上させることができます。 sendfile を使用しない従来のネットワーク送信プロセス:
硬盘 >> kernel buffer >> user buffer >> kernel socket buffer >> 协议栈
ネットワーク送信プロセスに sendfile() を使用する:
硬盘 >> kernel buffer (快速拷贝到 kernelsocket buffer) >>协议栈tcp_nopush on;
データパケットを蓄積してまとめて送信するように設定すると、送信効率が向上します。 tcp_nopush は sendfile とともに使用する必要があります。
tcp_nolay on;小さなデータ パケットは待機せずに直接送信されます。デフォルトはオンです。 tcp_nopush とは逆の機能のように見えますが、両方がオンの場合、nginx はこれら 2 つの機能をバランスよく使用することもできます。
keepalive_timeoutHTTP 接続の継続時間。設定が長すぎると、無駄なスレッドが多くなります。サーバーのアクセス数や処理速度、ネットワークの状況などを考慮して考慮されます。
send_timeoutNginx サーバーがクライアントに応答するまでのタイムアウトを設定します。このタイムアウトは、2 つのクライアントとサーバーの後の特定のアクティビティの間の時間のみです。接続を確立します。この時間が経過してもクライアントにアクティビティがない場合、Nginx サーバーは接続を閉じます。
gzip ongzip を有効にすると、応答データをオンラインでリアルタイムで圧縮し、データ送信量を削減できます。
gzip_disable "msie6"Nginx サーバーは、この種のクライアント リクエストに応答するときに、アプリケーション データをキャッシュするために Gzip 関数を使用しません。gzip_disable "msie6" は次の場合に適しています。 IE6 ブラウザ データは GZIP 圧縮されていません。 一般的に使用される構成項目は大まかに次のとおりです。さまざまなビジネス シナリオでは、追加の構成項目が必要になる場合もありますが、ここでは説明しません。
その他
http 設定には location 項目があり、リクエスト内の URI に基づいて対応する処理を照合するために使用されます。 。 ルール。
ロケーション検索ルールlocation = / { # 精确匹配 / ,主机名后面不能带任何字符串 [ config A ] } location / { # 因为所有的地址都以 / 开头,所以这条规则将匹配到所有请求 # 但是正则和最长字符串会优先匹配 [ config B ] } location /documents/ { # 匹配任何以 /documents/ 开头的地址,匹配符合以后,还要继续往下搜索 # 只有后面的正则表达式没有匹配到时,这一条才会采用这一条 [ config C ] } location ~ /documents/Abc { # 匹配任何以 /documents/Abc 开头的地址,匹配符合以后,还要继续往下搜索 # 只有后面的正则表达式没有匹配到时,这一条才会采用这一条 [ config CC ] } location ^~ /images/ { # 匹配任何以 /images/ 开头的地址,匹配符合以后,停止往下搜索正则,采用这一条 [ config D ] } location ~* \.(gif|jpg|jpeg)$ { # 匹配所有以 gif,jpg或jpeg 结尾的请求 # 然而,所有请求 /images/ 下的图片会被 config D 处理,因为 ^~ 到达不了这一条正则 [ config E ] } location /images/ { # 字符匹配到 /images/,继续往下,会发现 ^~ 存在 [ config F ] } location /images/abc { # 最长字符匹配到 /images/abc,继续往下,会发现 ^~ 存在 # F与G的放置顺序是没有关系的 [ config G ] } location ~ /images/abc/ { # 只有去掉 config D 才有效:先最长匹配 config G 开头的地址,继续往下搜索,匹配到这一条正则,采用 [ config H ] }
通常の検索優先順位は高から低まで次のとおりです。
「 = 」は意味を意味します。たとえば、A では、ルート ディレクトリの末尾にあるリクエストのみが一致し、その後に文字列を含めることはできません。 「 ^~ 」の始まりは、uri が通常の文字列で始まり、通常の一致ではないことを示します。
「 ~ 」の先頭は、大文字と小文字を区別する正規の一致を示します。
「 ~* 」の先頭は、大文字と小文字を区別しない正規の一致を示します。
"/" ユニバーサル一致。他に一致するものがない場合、すべてのリクエストが一致します。
#負荷分散構成
Nginx 的负载均衡需要用到 upstream 模块,可通过以下配置来实现:
upstream test-upstream { ip_hash; # 使用 ip_hash 算法分配 server 192.168.1.1; # 要分配的 ip server 192.168.1.2; } server { location / { proxy_pass http://test-upstream; } }
上面的例子定义了一个 test-upstream 的负载均衡配置,通过 proxy_pass 反向代理指令将请求转发给该模块进行分配处理。
以上が詳細な Nginx 構成に関する記事の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

Debian SystemsでのHadoopデータのセキュリティと可用性を確保することが重要です。この記事では、最も適切なソリューションを選択するのに役立つ一般的に使用されるHadoopデータバックアップメソッドをいくつか紹介します。 Hadoopデータバックアップ戦略次のメソッドに従うことでHadoopデータをバックアップできます。HDFSデータを手動でコピーする:Hadoopコマンドラインツールを使用して、ソースディレクトリからバックアップディレクトリにHDFSデータを直接コピーします。例:hadoopfs-cphdfs:// localhost:9000/source path hdfs:// localhost:9000/backup path hadoopdistcp:distcp(distribu

この記事では、DebianシステムでHadoopログを効率的に表示する方法を紹介します。 Hadoopのログ集約関数は、各ノードのログを中央に保存して、簡単に管理します。次の手順では、これらのログを表示する方法をガイドします。ステップ1:最初にログ集約が有効になっていることを確認して、Hadoopクラスター内のすべてのノードのログ集約が有効になっていることを確認します。これは通常、yarn-site.xml構成ファイルで構成されています:yarn.log-aggregation-enabletrueyarn.log-aggregation.retain-seconds172800yarn.nodemanager.re

この記事では、Debianシステムでジャンクファイルを効果的にクリーンアップし、ディスクスペースを解放し、システムのパフォーマンスを向上させる方法を紹介します。削除操作を実行する前に、必ず重要なデータをバックアップしてください。 1. Apt Cache Apt Cacheストアのダウンロードパッケージを清掃します。これらのキャッシュのクリーニングは多くのスペースを解放できます:sudoaptclean#ダウンロードキャッシュをクリーニングしてsudoaptcleanallをクリーニングしますsudoaptcleanallをクリーニングしますsudorm-rf/var/lib/lib/lib/lists/*

この記事では、Debianシステムで役に立たないプロセスを効果的に終了する方法について説明します。次の方法が利用可能です。方法1:最初にキルコマンド、Psaux | grepプロセス名コマンドを使用して、ターゲットプロセスのプロセスID(PID)を見つけます。 PIDが見つかった後、KillPidコマンドを使用してプロセスを終了します。プロセスが反応しない場合は、強力なコマンドKill-9PIDを使用して強制終了します。方法2:pkillコマンドPKILLコマンドを使用すると、プロセス名またはその他の属性に基づいてプロセスを終了できます。たとえば、pkillprocess_nameは、process_nameという名前のすべてのプロセスを終了します。 PKILL-9PR

Debianシステムでnode.jsを使用する場合、ログのエラーコードは、開発者が問題を迅速に見つけて解決するのに役立ちます。以下は、いくつかの一般的なnode.jsエラーコードとその意味です。EPERM:操作は許可されていません。これは通常、ログディレクトリを作成しようとするときに十分な権限がないなど、許可の問題が原因です。 enoent:そのようなファイルやディレクトリはありません。これは、アクセスまたは作成を試みたファイルまたはディレクトリが存在しないことを意味します。 eisdir:はディレクトリです。これは通常、ディレクトリとしてファイルを処理しようとするときに起こります。 ea

Debian Systemsでは、Linuxカーネルメカニズムがこの機能を直接サポートしていないため、ネットワーク帯域幅を直接「リサイクル」することは容易ではありません。ただし、一連の最適化測定を通じて間接的に帯域幅の利用を改善することができます。次の戦略は参照用に利用できます。ファインネットワーク構成:NetPlanまたは/etc/etc/network/interfacesファイルを使用して、ネットワーク設定を最適化します。たとえば、静的IPアドレスの構成またはDHCPパラメーターの調整は、不必要なIPアドレスの割り当てとリリースを減らすことができ、それにより効率が向上します。正確なフロー制御:フロー制御ツールTC(TrafficControl)を使用して、特定のアプリケーションの帯域幅使用量を制限し、重要なタスクに十分な帯域幅リソースがあることを確認します。

DebianシステムでネットワークSniffer(Wiresharkなど)の構成には、必要なソフトウェアパッケージのインストール、ネットワークインターフェイスの構成、スニッフィングコマンドの実行など、いくつかのステップが必要です。ネットワークのスニッフィングにはセキュリティとプライバシーの問題が含まれる可能性があるため、スニッフィングを行う前に、法的権限があり、関連するすべての法律、規制、プライバシーポリシーに準拠していることを確認してください。この記事では、一般的に使用されるネットワークプロトコルアナライザーであるWiresharkを例として取り、Debianシステムにのインストールと構成を説明します。DebianにWiresharkをインストールして端末を開きます。更新パッケージリスト:sudoaptupdateインストールwireshark:sudoaptinstall

この記事では、Winston Log Libraryを例にとって、Debianシステムでnode.jsアプリケーションのログ形式をカスタマイズする方法を紹介します。ステップ1:最初にウィンストンをインストールし、ウィンストンがインストールされていることを確認してください。インストールされていない場合は、プロジェクトルートディレクトリで次のコマンドを実行してください。NPMINSTALLWINSTONステップ2:カスタムログフォーマットの作成logger.jsという名前のファイルを作成し、カスタムログ形式を定義するために次のコードを作成します。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

MantisBT
Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

WebStorm Mac版
便利なJavaScript開発ツール

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境
