ホームページ バックエンド開発 PHPチュートリアル 【nginxソースコード解析】構成解析(イベントスコープ)

【nginxソースコード解析】構成解析(イベントスコープ)

Aug 08, 2016 am 09:24 AM
conf ctx event module

イベントの処理


NGX_EVENT_MODULE に準拠する 2 つのモジュール、つまり ngx_event_core_module と ngx_epoll_module があります

コア コード

  ngx_modules[i]->ctx_index = ngx_event_max_module++;//设置模块内部索引
      }                                                                                                                                                             
  
      ctx = ngx_pcalloc(cf->pool, sizeof(void *));
      if (ctx == NULL) {
          return NGX_CONF_ERROR;
      }
  
      *ctx = ngx_pcalloc(cf->pool, ngx_event_max_module * sizeof(void *));//ctx指向数组
      if (*ctx == NULL) {
          return NGX_CONF_ERROR;
      }
  
      *(void **) conf = ctx;
  
      for (i = 0; ngx_modules[i]; i++) {
          if (ngx_modules[i]->type != NGX_EVENT_MODULE) {
              continue;
          }
  
          m = ngx_modules[i]->ctx;
  
          if (m->create_conf) {//如果NGX_EVENT_MODULE类型模块存在create_conf函数那么就调用该模块的create_conf函数,挂载到event上下文中
              (*ctx)[ngx_modules[i]->ctx_index] = m->create_conf(cf->cycle);//创建相应上下文
              if ((*ctx)[ngx_modules[i]->ctx_index] == NULL) {
                  return NGX_CONF_ERROR;
              }
          }
      }
  
      pcf = *cf;
      cf->ctx = ctx;
      cf->module_type = NGX_EVENT_MODULE;//设置模块环境
      cf->cmd_type = NGX_EVENT_CONF;		//设置命令类型
rv = ngx_conf_parse(cf, NULL);
ログイン後にコピー

次に、worker_connections1024 を解析します。このコマンドは ngx_event_core_mod にありますule、ngx_even t_connections 関数を呼び出し、接続値を 1024 に設定します、構造は次のとおりです:


以上、【nginxのソースコード解析】構成解析(イベントスコープ)を内容も含めて紹介しましたが、PHPチュートリアルに興味のある友人の参考になれば幸いです。

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

ホットな記事タグ

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

ModuleNotFoundError: Python モジュールが見つからないエラーを解決するには? ModuleNotFoundError: Python モジュールが見つからないエラーを解決するには? Jun 25, 2023 pm 09:30 PM

ModuleNotFoundError: Python モジュールが見つからないエラーを解決するには?

PHP8.0のイベント処理ライブラリ:イベント PHP8.0のイベント処理ライブラリ:イベント May 14, 2023 pm 05:40 PM

PHP8.0のイベント処理ライブラリ:イベント

Java9の新機能モジュール モジュラープログラミング方式 Java9の新機能モジュール モジュラープログラミング方式 May 19, 2023 pm 01:51 PM

Java9の新機能モジュール モジュラープログラミング方式

Steam サマー セール - Valve が AAA ゲームの 95% オフを予告、バイラル ゲーム Palworld とコンテンツ警告の割引を確認 Steam サマー セール - Valve が AAA ゲームの 95% オフを予告、バイラル ゲーム Palworld とコンテンツ警告の割引を確認 Jun 26, 2024 pm 03:40 PM

Steam サマー セール - Valve が AAA ゲームの 95% オフを予告、バイラル ゲーム Palworld とコンテンツ警告の割引を確認

Python で Pygame の Event イベント モジュールを使用する方法 Python で Pygame の Event イベント モジュールを使用する方法 May 18, 2023 am 11:58 AM

Python で Pygame の Event イベント モジュールを使用する方法

LinuxシステムでNTFSディスクをマウントするときに「モジュールヒューズが見つかりません」という問題を解決するにはどうすればよいですか? LinuxシステムでNTFSディスクをマウントするときに「モジュールヒューズが見つかりません」という問題を解決するにはどうすればよいですか? Dec 31, 2023 pm 03:17 PM

LinuxシステムでNTFSディスクをマウントするときに「モジュールヒューズが見つかりません」という問題を解決するにはどうすればよいですか?

Centos7 システム構成 DNS サービス Centos7 システム構成 DNS サービス Feb 19, 2024 pm 07:40 PM

Centos7 システム構成 DNS サービス

Steam サマー セールのトレーラーで AAA ゲームのセールが 95% オフになることが予告され、Palworld、Stellaris、コンテンツ警告の値下げが確認されました Steam サマー セールのトレーラーで AAA ゲームのセールが 95% オフになることが予告され、Palworld、Stellaris、コンテンツ警告の値下げが確認されました Jun 26, 2024 am 06:30 AM

Steam サマー セールのトレーラーで AAA ゲームのセールが 95% オフになることが予告され、Palworld、Stellaris、コンテンツ警告の値下げが確認されました

See all articles