nginx 模块简介

nginx模块一般分为5类:核心模块、标准http模块、可选http模块、邮件服务模块、第三方模块。

其中核心模块和标准http模块在快速编译之后就包含在了nginx中。

主要看一下核心模块、标准http模块和可选http模块,这些模块都可以在ngx_modules.c中找到

  1 #include <ngx_config.h>
  2 #include <ngx_core.h>
  3 
  4 
  5 
  6 extern ngx_module_t  ngx_core_module;
  7 extern ngx_module_t  ngx_errlog_module;
  8 extern ngx_module_t  ngx_conf_module;
  9 extern ngx_module_t  ngx_events_module;
 10 extern ngx_module_t  ngx_event_core_module;
 11 extern ngx_module_t  ngx_epoll_module;
 12 extern ngx_module_t  ngx_regex_module;
 13 extern ngx_module_t  ngx_http_module;
 14 extern ngx_module_t  ngx_http_core_module;
 15 extern ngx_module_t  ngx_http_log_module;
 16 extern ngx_module_t  ngx_http_upstream_module;
 17 extern ngx_module_t  ngx_http_static_module;
 18 extern ngx_module_t  ngx_http_autoindex_module;
 19 extern ngx_module_t  ngx_http_index_module;
 20 extern ngx_module_t  ngx_http_auth_basic_module;
 21 extern ngx_module_t  ngx_http_access_module;
 22 extern ngx_module_t  ngx_http_limit_conn_module;
 23 extern ngx_module_t  ngx_http_limit_req_module;
 24 extern ngx_module_t  ngx_http_geo_module;
 25 extern ngx_module_t  ngx_http_map_module;
 26 extern ngx_module_t  ngx_http_split_clients_module;
 27 extern ngx_module_t  ngx_http_referer_module;
 28 extern ngx_module_t  ngx_http_rewrite_module;
 29 extern ngx_module_t  ngx_http_proxy_module;
 30 extern ngx_module_t  ngx_http_fastcgi_module;
 31 extern ngx_module_t  ngx_http_uwsgi_module;
 32 extern ngx_module_t  ngx_http_scgi_module;
 33 extern ngx_module_t  ngx_http_memcached_module;
 34 extern ngx_module_t  ngx_http_empty_gif_module;
 35 extern ngx_module_t  ngx_http_browser_module;
 36 extern ngx_module_t  ngx_http_upstream_ip_hash_module;
 37 extern ngx_module_t  ngx_http_upstream_least_conn_module;
 38 extern ngx_module_t  ngx_http_upstream_keepalive_module;
 39 extern ngx_module_t  ngx_http_write_filter_module;
 40 extern ngx_module_t  ngx_http_header_filter_module;
 41 extern ngx_module_t  ngx_http_chunked_filter_module;
 42 extern ngx_module_t  ngx_http_range_header_filter_module;
 43 extern ngx_module_t  ngx_http_gzip_filter_module;
 44 extern ngx_module_t  ngx_http_postpone_filter_module;
 45 extern ngx_module_t  ngx_http_ssi_filter_module;
 46 extern ngx_module_t  ngx_http_charset_filter_module;
 47 extern ngx_module_t  ngx_http_userid_filter_module;
 48 extern ngx_module_t  ngx_http_headers_filter_module;
 49 extern ngx_module_t  ngx_http_copy_filter_module;
 50 extern ngx_module_t  ngx_http_range_body_filter_module;
 51 extern ngx_module_t  ngx_http_not_modified_filter_module;
 52 
 53 ngx_module_t *ngx_modules[] = {
 54     &ngx_core_module,
 55     &ngx_errlog_module,
 56     &ngx_conf_module,
 57     &ngx_events_module,
 58     &ngx_event_core_module,
 59     &ngx_epoll_module,
 60     &ngx_regex_module,
 61     &ngx_http_module,
 62     &ngx_http_core_module,
 63     &ngx_http_log_module,
 64     &ngx_http_upstream_module,
 65     &ngx_http_static_module,
 66     &ngx_http_autoindex_module,
 67     &ngx_http_index_module,
 68     &ngx_http_auth_basic_module,
 69     &ngx_http_access_module,
 70     &ngx_http_limit_conn_module,
 71     &ngx_http_limit_req_module,
 72     &ngx_http_geo_module,
 73     &ngx_http_map_module,
 74     &ngx_http_split_clients_module,
 75     &ngx_http_referer_module,
 76     &ngx_http_rewrite_module,
 77     &ngx_http_proxy_module,
 78     &ngx_http_fastcgi_module,
 79     &ngx_http_uwsgi_module,
 80     &ngx_http_scgi_module,
 81     &ngx_http_memcached_module,
 82     &ngx_http_empty_gif_module,
 83     &ngx_http_browser_module,
 84     &ngx_http_upstream_ip_hash_module,
 85     &ngx_http_upstream_least_conn_module,
 86     &ngx_http_upstream_keepalive_module,
 87     &ngx_http_write_filter_module,
 88     &ngx_http_header_filter_module,
 89     &ngx_http_chunked_filter_module,
 90     &ngx_http_range_header_filter_module,
 91     &ngx_http_gzip_filter_module,
 92     &ngx_http_postpone_filter_module,
 93     &ngx_http_ssi_filter_module,
 94     &ngx_http_charset_filter_module,
 95     &ngx_http_userid_filter_module,
 96     &ngx_http_headers_filter_module,
 97     &ngx_http_copy_filter_module,
 98     &ngx_http_range_body_filter_module,
 99     &ngx_http_not_modified_filter_module,
100     NULL
101 };

1、核心模块

1 extern ngx_module_t  ngx_core_module;
2 extern ngx_module_t  ngx_errlog_module;
3 extern ngx_module_t  ngx_conf_module;
4 extern ngx_module_t  ngx_events_module;
5 extern ngx_module_t  ngx_event_core_module;
6 extern ngx_module_t  ngx_epoll_module;
7 extern ngx_module_t  ngx_regex_module;

上面的都是核心模块,主要包括2类功能,一类功能是主题功能,包括进程管理、权限控制、错误日志记录、配置解析等;另一类功能是用于响应请求事件必须的功能,包括事件驱动机制、正则表达式解析等。

其他的模块后续再补充

原文地址:https://www.cnblogs.com/abc-begin/p/7614227.html