nginx模块简介与编译安装

nginx模块简介与编译安装示例

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协议。 –without-http_uwsgi_module

扩展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

参数介绍:

  1. 修改nginx安装目录到/usr/local/nginx
  2. 修改nginx进程用户为nginx
  3. 添加ssl、realip、image_filter、gzip_static、stub_status模块
  4. 修改日志文件到/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

(0)
net31_行者无疆net31_行者无疆
上一篇 2018-06-23 15:37
下一篇 2018-06-23 18:44

相关推荐

  • 第二周

    第二周: Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。 1 touch   可以创建一个空的新文件,若文件存在改变文件时间戳。 2 cat     查看文件内容,一次性输出所有内容, 如cat  filename -n :输出所有行编号 -b 对非空输出行号 3 more  可以分屏显示  按回车翻下一屏 4 less   可以分…

    Linux笔记 2018-07-02
  • SSH端口转发实验

      本节索引: 一、SSH端口转发相关概念 二、实验:模拟SSH本地端口转发 三、实验:模拟SSH远程端口转发 四、实验:模拟SSH动态端口转发   一、SSH端口转发相关概念 在上一节我们知道,SSH会自动加密和解密所有SSH客户端和服务器之间的网络数据。但是,SSH还同时 提供了一个非常有用的功能,这就是端口转发。它能够将其他TCP端…

    Linux笔记 2018-05-22
  • centos 7.4 上源码安装 mysql 数据库

    实验: centos 7.4 上源码安装 mysql 数据库   检查相应的坏境 查看下防火墙iptables和selinux 是否关闭,没关闭先关闭。 再查看下原来主机上是否已有 mariadb 数据库,如果有先卸载在进行安装。   装包 yum install bison bison-devel zlib-devel libcurl-devel liba…

    Linux笔记 2018-06-05
  • yum仓库的建立

    配置文件 1手动生成 /etc/yum.repos.d/FILE.repo [NAME] name=NAME baseurl=… gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 enable=1 2直接复制 http://mirrors.aliyun.com/repo/   /*直接下载阿里…

    Linux笔记 2018-04-29
  • 笔记

    LINUX中查看路由表的命令 route -nIP地址 有类的 无类的无类:网络ID ,主机ID不确定 (32位以内的)CIDR 无类域间路由无类ID要与netmask(子网掩码)一起用 用子网掩码(也是32位的2进制数)来确定无类ID的网络ID和主ID netmask对应的是1IP/网络ID位数255.255.0.000000000 010000000 1…

    Linux笔记 2018-05-01
  • Linux 入门基础知识

    Linux第一周作业(计算机组件及功能,Linux发行版本,Linux系统文件目录及基础命令)

    Linux笔记 2018-05-12