Nginx的模块简介与编译安装示例
Nginx由内核和模块组成,其中,内核通过查找配置文件将客户端请求映射到对应location参数块,而在这个location中所配置的每条参数将会启动不同的模块去完成相应的工作。
模块简介
核心模块
说明 | |
---|---|
Main | 配置错误日志、进程、权限等。 |
Events | 配置epoll、kqueue、select、poll等。 |
标准http模块
默认均被编译的模块,除非--without-*禁用之。
名称 | 说明 | 禁用选项 |
---|---|---|
Core | 控制端口、location、错误页、别名和其他必要配置。 | –without-http |
Access | 基于客户端IP地址允许/拒绝Http请求。 | –without-http_access_module |
Auth Basic | Basic HTTP 认证。 | –without-http_auth_basic_module |
Auto Index | 自动为没有索引页面的目录生成文件列表。 | –without-http_autoindex_module |
Browser | 翻译”User-Agent” 字符串。 | –without-http_browser_module |
Charset | 对Web页面重新编码。 | –without-http_charset_module |
Empty GIF | 在内存中生成一个高1像素、宽1像素的GIF图片,并对外提供服务。 | –without-http_empty_gif_module |
FastCGI | 提供对FastCGI的支持。 | –without-http_fastcgi_module |
Geo | 通过IP地址的键值对来设置配置参数。 | –without-http_geo_module |
Gzip | 支持使用Gzip压缩响应内容。 | –without-http_gzip_module |
Headers | 可以设定任意的HTTP响应头。 | |
Index | 控制将哪些文件作为索引页面。 | |
Limit Requests | 限定客户端创建连接的频率。 | –without-http_limit_req_module |
Limit Zone | 限定客户端同时建立连接的最大数。从1.1.8起不再推荐使用,建议使用 Limit Conn。 | –without-http_limit_zone_module |
Limit Conn | 通过配置参数限定客户端的最大并发连接数。 | –without-http_limit_conn_module |
Log | 可以定制访问日志。 | |
Map | 以键值对的方式设定任意配置参数。 | –without-http_map_module |
Memcached | 支持Memcached缓存技术。 | –without-http_memcached_module |
Proxy | 代理上级服务器。 | –without-http_proxy_module |
Referer | 基于RefererHTTP请求头对请求进行过滤。 | –without-http_referer_module |
Rewrite | 使用正则表达式对请求进行重写。 | –without-http_rewrite_module |
SCGI | 支持SCGI协议。 | –without-http_scgi_module |
Split Clients | 基于某些条件将客户端分类。 | –without-http_split_clients_module |
SSI | 支持服务器端的include。 | –without-http_ssi_module |
Upstream | 支持负载均衡。 | –without-http_upstream_ip_hash_module (ip_hash directive only) |
User ID | 发行用户身份标识cookie。 | –without-http_userid_module |
uWSGI | 支持uWSGI协议。 |
扩展http模块
这些模块在编译时可选,如需要,则--with-*启用之。
说明 | 启用选项 | |
---|---|---|
Addition | 可以为页面追加文本。 | –with-http_addition_module |
Degradation | 允许当剩余内存较低时对某些位置的请求返回 204 或 404 状态码。 | –with-http_degradation_module |
Embedded Perl | 允许在配置文件中使用 Perl。 | –with-http_perl_module |
FLV | 支持 Flash视频(Flash Streaming Video)。 | –with-http_flv_module |
GeoIP | 根据来自 MaxMind 的 GeoIP 二进制文件中的信息创建变量。 | –with-http_geoip_module |
Google Perftools | 支持 Google 性能工具。 | –with-google_perftools_module |
Gzip Precompression | 提供预压缩的静态文件。 | –with-http_gzip_static_module |
Image Filter | 支持使用 Libgd 对图片进行变换。 | –with-http_image_filter_module |
MP4 | 允许对 mp4 流进行寻址。 | –with-http_mp4_module |
Random Index | 允许使目录索引随机化。 | –with-http_random_index_module |
Real IP | 允许将 nginx 作为后端服务器。 | –with-http_realip_module |
Secure Link | 允许通过密钥保护指定的文件。 | –with-http_secure_link_module |
SSL | 支持 HTTPS/SSL。 | –with-http_ssl_module |
Stub Status | 提供查看服务器统计信息的能力。 | –with-http_stub_status_module |
Substitution | 可以替换页面中的文本。 | –with-http_sub_module |
WebDAV | 支持 WebDAV 穿透。 | –with-http_dav_module |
XSLT | 允许对页面使用 XSLT 进行后处理。 | –with-http_xslt_module |
邮件模块
说明 | 配置参数 | |
---|---|---|
Core | 使 Nginx 能够处理/代理 IMAP、POP3、SMTP协议。 | –with-mail –without-mail_pop3_module –without-mail_imap_module –without-mail_smtp_module |
Auth | 使用 Nginx 为邮件服务进行认证。 | |
Proxy | 使 Nginx 能够代理 IMAP、POP3、SMTP协议。 | |
SSL | 该模块可以让 POP3/IMAP/SMTP 使用 SSL/TLS。 | –with-mail_ssl_module |
Nginx编译安装示例
本次实验环境:
OS:CentOS7.4
Nginx:nginx-1.14.0.tar(官网下载)
Nginx的编译安装过程如下:
1.解压nginx源码包到/usr/local
[root@windpc ~]# tar -xvf nginx-1.14.0.tar.gz -C /usr/local/
[root@windpc ~]# cd /usr/local/nginx-1.14.0
2.添加nginx用户且该用户不可登录及无家目录
[root@windpc nginx]# useradd nginx -s /sbin/nologin
-M
3.进入nginx目录生成Makefile
我使用的编译参数如下:
./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_ssl_module --with-http_realip_module --with-http_image_filter_module --with-http_gzip_static_module --with-http_stub_status_module --http-log-path=/data/logs/nginx/access.log --error-log-path=/data/logs/nginx/error.log
查看可用参数可用使用./configure –help
参数介绍:
- 修改nginx安装目录到/usr/local/nginx
- 修改nginx进程用户为nginx
- 添加ssl、realip、image_filter、gzip_static、stub_status模块
- 修改日志文件到/data/logs/nginx目录下
如遇到以下错误提示安装对应软件包即可:
- ./configure: error: the HTTP rewrite module requires the PCRE library. 对应yum install pcre-devel.x86_64
- ./configure: error: SSL modules require the OpenSSL library. 对应yum install openssl-devel.x86_64 依赖安装的软件包交给yum解决,不一一列出。
- ./configure: error: the HTTP image filter module requires the GD library. 对应yum install gd-devel.x86_64
总之,缺啥装啥,直到没有错误提示。
4.使用make工具依据Makefile生成二进制文件
5.makeinstall
以下是安装结束时末尾的提示:test -d '/usr/local/nginx/logs' \
|| mkdir -p '/usr/local/nginx/logs'
test -d '/data/logs/nginx' \
|| mkdir -p '/data/logs/nginx'
test -d '/usr/local/nginx/html' \
|| cp -R html '/usr/local/nginx'
test -d '/data/logs/nginx' \
|| mkdir -p '/data/logs/nginx'
make[1]: Leaving directory `/root/nginx-1.14.0'
可以看到,安装时会依据之前的配置自动建立路径,所以不用提前建立那些目录。注意即使改了log的路径,原来的默认文件夹里也会生成一个logs目录。
本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/101472