nginx 共通機能
1. http プロキシ、リバース プロキシ: Web サーバーの最も一般的に使用される機能の 1 つ、特にリバース プロキシ。
ここでは、陽性剤と反応性剤について説明するために 2 つの写真を示します。具体的な詳細については、情報を参照してください。
#nginx は、リバース プロキシとして使用すると安定したパフォーマンスを提供し、柔軟な構成で転送機能を提供できます。 nginx は、画像ファイルの末尾ではファイル サーバーに移動し、動的ページの場合は Web サーバーに移動するなど、さまざまな規則的なマッチングに基づいてさまざまな転送戦略を採用できます。サーバー ソリューションでは、やりたいことが何でもできます。そしてnginxは返された結果に対してエラーページジャンプや例外判定などを行います。分散サーバーが異常な場合、リクエストを別のサーバーに再転送し、異常なサーバーを自動的に削除できます。
2. 負荷分散
nginx は、組み込み戦略と拡張戦略という 2 種類の負荷分散戦略を提供します。組み込みの戦略は、ポーリング、加重ポーリング、および IP ハッシュです。拡張戦略は、想像を絶するものであると同時に想像力豊かです。考えられないことやできないことは何もありません。すべての負荷分散アルゴリズムを参照して、それらを 1 つずつ見つけて実装できます。
上の 3 つの図では、これら 3 つの負荷分散アルゴリズムの実装を理解しています。
#ip ハッシュ アルゴリズム。要求された IP に対してハッシュ操作を実行します。クライアントにリクエストを送信し、ハッシュ結果に基づいて同じクライアント IP からのリクエストを同じサーバーに分散して処理することで、セッションが共有されない問題を解決できます。
3. Web キャッシュ
nginx は、柔軟な構成でさまざまなファイルに対してさまざまなキャッシュ処理を実行でき、主に fastcgi Dynamic に使用される fastcgi_cache をサポートします。プログラムはキャッシュされます。サードパーティ製のngx_cache_purgeと連携し、指定したURLキャッシュコンテンツを追加・削除して管理できます。
4. nginx 関連アドレス
ソースコード:
公式サイト:
nginx 設定ファイル構造
If インストール ファイルをダウンロードしたら、conf フォルダー内の nginx.conf ファイルを開いてもよいでしょう。nginx サーバーの基本構成とデフォルト構成もここに保存されています。
nginx.conf のコメント シンボル ビット
#nginx ファイルの構造。学習を始めたばかりの学生は、これをもう一度確認してください。
デフォルト設定
#user nobody; worker_processes 1; #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; #pid logs/nginx.pid; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; #log_format main '$remote_addr - $remote_user [$time_local] "$request" ' # '$status $body_bytes_sent "$http_referer" ' # '"$http_user_agent" "$http_x_forwarded_for"'; #access_log logs/access.log main; sendfile on; #tcp_nopush on; #keepalive_timeout 0; keepalive_timeout 65; #gzip on; server { listen 80; server_name localhost; #charset koi8-r; #access_log logs/host.access.log main; location / { root html; index index.html index.htm; } #error_page 404 /404.html; # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } # proxy the php scripts to apache listening on 127.0.0.1:80 # #location ~ \.php$ { # proxy_pass http://127.0.0.1; #} # pass the php scripts to fastcgi server listening on 127.0.0.1:9000 # #location ~ \.php$ { # root html; # fastcgi_pass 127.0.0.1:9000; # fastcgi_index index.php; # fastcgi_param script_filename /scripts$fastcgi_script_name; # include fastcgi_params; #} # deny access to .htaccess files, if apache's document root # concurs with nginx's one # #location ~ /\.ht { # deny all; #} } # another virtual host using mix of ip-, name-, and port-based configuration # #server { # listen 8000; # listen somename:8080; # server_name somename alias another.alias; # location / { # root html; # index index.html index.htm; # } #} # https server # #server { # listen 443 ssl; # server_name localhost; # ssl_certificate cert.pem; # ssl_certificate_key cert.key; # ssl_session_cache shared:ssl:1m; # ssl_session_timeout 5m; # ssl_ciphers high:!anull:!md5; # ssl_prefer_server_ciphers on; # location / { # root html; # index index.html index.htm; # } #} }
nginxファイル構造
... #全局块 events { #events块 ... } http #http块 { ... #http全局块 server #server块 { ... #server全局块 location [pattern] #location块 { ... } location [pattern] { ... } } server { ... } ... #http全局块 }
1. グローバルブロック: nginxにグローバルに影響を与える命令を設定します。一般的に、nginxサーバーを実行するためのユーザーグループ、nginxプロセスのpid保存パス、ログ保存パス、設定ファイルの導入、生成可能なワーカープロセスの数などがあります。
2. イベント ブロック: 設定は、nginx サーバーまたはユーザーとのネットワーク接続に影響します。プロセスごとの接続の最大数、接続要求を処理するためにどのイベント ドリブン モデルを選択するか、複数のネットワーク接続を同時に受け入れることを許可するかどうか、複数のネットワーク接続のシリアル化を有効にするかどうかなどがあります。
3. http ブロック: 複数のサーバーをネストし、プロキシ、キャッシュ、ログ定義、その他のほとんどの機能とサードパーティのモジュール構成を構成できます。ファイルの導入、MIME タイプの定義、ログのカスタマイズ、ファイル転送に sendfile を使用するかどうか、接続タイムアウト、単一接続リクエストの数など。
4. サーバー ブロック: 仮想ホストの関連パラメーターを設定します。1 つの http 内に複数のサーバーが存在する可能性があります。
5. ロケーション ブロック: リクエストのルーティングとさまざまなページの処理を設定します。
以下は、誰でも理解できるようにするための構成ファイルであり、例を示すために私が構築したテスト マシンにもインストールされています。
########### 每个指令必须有分号结束。################# #user administrator administrators; #配置用户或者组,默认为nobody nobody。 #worker_processes 2; #允许生成的进程数,默认为1 #pid /nginx/pid/nginx.pid; #指定nginx进程运行文件存放地址 error_log log/error.log debug; #制定日志路径,级别。这个设置可以放入全局块,http块,server块,级别以此为:debug|info|notice|warn|error|crit|alert|emerg events { accept_mutex on; #设置网路连接序列化,防止惊群现象发生,默认为on multi_accept on; #设置一个进程是否同时接受多个网络连接,默认为off #use epoll; #事件驱动模型,select|poll|kqueue|epoll|resig|/dev/poll|eventport worker_connections 1024; #最大连接数,默认为512 } http { include mime.types; #文件扩展名与文件类型映射表 default_type application/octet-stream; #默认文件类型,默认为text/plain #access_log off; #取消服务日志 log_format myformat '$remote_addr–$remote_user [$time_local] $request $status $body_bytes_sent $http_referer $http_user_agent $http_x_forwarded_for'; #自定义格式 access_log log/access.log myformat; #combined为日志格式的默认值 sendfile on; #允许sendfile方式传输文件,默认为off,可以在http块,server块,location块。 sendfile_max_chunk 100k; #每个进程每次调用传输数量不能大于设定的值,默认为0,即不设上限。 keepalive_timeout 65; #连接超时时间,默认为75s,可以在http,server,location块。 upstream mysvr { server 127.0.0.1:7878; server 192.168.10.121:3333 backup; #热备 } error_page 404 https://www.baidu.com; #错误页 server { keepalive_requests 120; #单连接请求上限次数。 listen 4545; #监听端口 server_name 127.0.0.1; #监听地址 location ~*^.+$ { #请求的url过滤,正则匹配,~为区分大小写,~*为不区分大小写。 #root path; #根目录 #index vv.txt; #设置默认页 proxy_pass http://mysvr; #请求转向mysvr 定义的服务器列表 deny 127.0.0.1; #拒绝的ip allow 172.18.5.54; #允许的ip } } }
上記は nginx の基本的な構成ですが、次の点に注意する必要があります:
1. 1.$remote_addr と $http_x_forwarded_for は、クライアントの IP アドレスを記録します。 ; 2.$remote_user: クライアントのユーザー名を記録するために使用されます; 3.$time_local: アクセス時間とタイムゾーンを記録するために使用されます; 4.$request: 要求された URL と http プロトコルを記録するために使用されます。
5. $status: リクエストのステータスを記録するために使用されます。成功は 200、6.$body_bytes_s ent: クライアントに送信されたファイルの本文コンテンツのサイズを記録します。7.$http_referer: に使用されます。アクセス元のページ リンクを記録します; 8.$http_user_agent: クライアント ブラウザの関連情報を記録します;
2. サンダリング ハード現象: ネットワーク接続が到着すると、複数のスリープ状態のプロセスが同僚によって目覚めますが、ただ 1 つだけです。プロセスがリンクを取得できるため、システムのパフォーマンスに影響します。
3. 各命令はセミコロンで終わる必要があります。
以上がNginx 設定ファイルのサンプル分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

nginxunitは、多言語プロジェクトや動的な構成要件に適した、apachetomcat、gunicorn、node.jsビルトインHTTPサーバーよりも優れています。 1)複数のプログラミング言語をサポートします。2)動的な構成リロード、3)高いスケーラビリティと信頼性を必要とするプロジェクトに適した組み込みの負荷分散機能を提供します。

Nginxunitは、モジュラーアーキテクチャと動的な再構成機能により、アプリケーションのパフォーマンスと管理性を向上させます。 1)モジュラー設計には、マスタープロセス、ルーター、アプリケーションプロセスが含まれ、効率的な管理と拡張をサポートします。 2)動的再構成により、CI/CD環境に適した、実行時に構成をシームレスに更新できます。 3)多言語サポートは、言語ランタイムの動的なロードを通じて実装され、開発の柔軟性が向上します。 4)イベント駆動型モデルと非同期I/Oによって高性能が達成され、高い並行性の下でも効率的なままです。 5)申請プロセスを分離し、アプリケーション間の相互の影響を減らすことにより、セキュリティが改善されます。

nginxunitを使用して、アプリケーションを複数の言語で展開および管理できます。 1)nginxunitをインストールします。 2)PythonやPHPなどのさまざまなタイプのアプリケーションを実行するように構成します。 3)アプリケーション管理に動的構成関数を使用します。これらの手順を通じて、アプリケーションを効率的に展開および管理し、プロジェクトの効率を向上させることができます。

NGINXは、高い並行接続の処理に適していますが、Apacheは複雑な構成とモジュール拡張が必要なシナリオにより適しています。 1.Nginxは、高性能と低リソース消費で知られており、高い並行性に適しています。 2. Apacheは、その安定性とリッチモジュール拡張機能で知られています。これは、複雑な構成ニーズに適しています。

Nginxunitは、動的な構成と高性能アーキテクチャにより、アプリケーションの柔軟性とパフォーマンスを向上させます。 1.動的構成により、サーバーを再起動せずにアプリケーション構成を調整できます。 2.高性能は、イベント駆動型および非ブロッキングアーキテクチャおよびマルチプロセスモデルに反映され、同時接続を効率的に処理し、マルチコアCPUを利用できます。

NginxとApacheはどちらも強力なWebサーバーであり、それぞれがパフォーマンス、スケーラビリティ、効率の点で独自の利点と短所を備えています。 1)nginxは、静的なコンテンツを処理し、逆プロキシを逆にするときにうまく機能します。 2)Apacheは、動的コンテンツを処理するときにパフォーマンスが向上し、リッチモジュールサポートが必要なプロジェクトに適しています。サーバーの選択は、プロジェクトの要件とシナリオに基づいて決定する必要があります。

Nginxは、高い並行リクエストの処理に適していますが、Apacheは複雑な構成と機能的拡張が必要なシナリオに適しています。 1.Nginxは、イベント駆動型の非ブロッキングアーキテクチャを採用しており、高電流環境に適しています。 2。Apacheはプロセスまたはスレッドモデルを採用して、複雑な構成のニーズに適したリッチモジュールエコシステムを提供します。

Nginxは、Webサイトのパフォーマンス、セキュリティ、およびスケーラビリティを改善するために使用できます。 1)逆プロキシおよびロードバランサーとして、Nginxはバックエンドサービスを最適化し、トラフィックを共有できます。 2)イベント駆動型および非同期アーキテクチャを通じて、nginxは高い並行接続を効率的に処理します。 3)構成ファイルでは、静的ファイルサービスやロードバランシングなどのルールの柔軟な定義を可能にします。 4)最適化の提案には、GZIP圧縮の有効化、キャッシュの使用、およびワーカープロセスの調整が含まれます。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

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

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

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

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

ホットトピック









