Nginx编译安装方式

1、安装依赖包

1)、pcre (Perl Compatible Regular Expressions)

用来支持正则表达式。Nginx的 Core and Rewrite 两个模块使用。

下载地址:

http://www.pcre.org/

安装方式:

$ wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.44.tar.gz  # 具体版本可以视具体要求可定
$ tar -zxf pcre-8.44.tar.gz
$ cd pcre-8.44
$ ./configure
$ make
$ sudo make install

2)、zilb

支持头(header)压缩。Nginx Gzip 模块使用。

下载地址:

http://zlib.net/

安装方式:

$ wget http://zlib.net/zlib-1.2.11.tar.gz
$ tar -zxf zlib-1.2.11.tar.gz
$ cd zlib-1.2.11
$ ./configure
$ make
$ sudo make install

3)、OPENSSL

支持HTTPS协议。Nginx SSL 和其他模块需要。

下载地址:

https://www.openssl.org/source/

安装方式:

$ wget http://www.openssl.org/source/openssl-1.1.1g.tar.gz
$ tar -zxf openssl-1.1.1g.tar.gz
$ cd openssl-1.1.1g
$ ./Configure darwin64-x86_64-cc --prefix=/usr
$ make
$ sudo make install

 

2、下载Nginx源码包

具体要使用的版本,也是视具体需求来定。

$ wget https://nginx.org/download/nginx-1.19.0.tar.gz
$ tar zxf nginx-1.19.0.tar.gz
$ cd nginx-1.19.0

 

3、编译安装

1)、编译示例

$ ./configure
--prefix=/usr/local/nginx
--sbin-path=/usr/local/nginx/nginx
--conf-path=/usr/local/nginx/nginx.conf
--pid-path=/usr/local/nginx/nginx.pid
--with-pcre=../pcre-8.44
--with-zlib=../zlib-1.2.11
--with-http_ssl_module
--with-stream
--with-mail=dynamic
--add-module=/usr/build/nginx-rtmp-module
--add-dynamic-module=/usr/build/3party_module
参数 描述
--prefix=<PATH> Nginx文件目录,默认:/usr/local/nginx
--sbin-path=<PATH> Nginx可执行文件,默认:**/sbin/nginx
--conf-path=<PATH> Nginx配置文件,可以在nginx命令行中,使用-c <FILENAME>指定运行。默认:**conf/nginx.conf
--pid-path=<PATH> Nginx Pid文件,默认:**/logs/nginx.pid
--error-log-path=<PATH> Nginx错误日志文件,默认:**/logs/error.log
--http-log-path=<PATH> Nginx HTTP请求日志文件:**/logs/access.log
--user=<NAME> Nginx工作进程使用的非权限用户名称,默认:nobody
--group=<NAME> Nginx工作进程使用的用户组,默认:--user参数指定
--with-pcre=<PATH> PCRE库路径
--with-pcre-jit 支持PCRE库的“just-in-time compilation”
--with-zlib=<PATH> ZLIB库路径

2)、增加/删除nginx模块

# 增加新模块
--without-<MODULE-NAME>
?
# 删除模块
--without-<MODULE-NAME>
模块名称 描述
http_access_module 接收或者禁止指定客户端IP地址
http_auth_basic_module 支持用户名和密码的HTTP基础认证协议
http_autoindex_module 处理以前斜杠字符(/)结尾的请求,并生成目录列表
http_browser_module 创建变量,其值依赖于User-Agent请求头的值
http_charset_module 将指定的字符集添加到Content-Type响应头。 可以将数据从一个字符集转换为另一个字符集。
http_empty_gif_module 发出一个单像素透明GIF
http_fastcgi_module 通过请求给FastCGI服务器
http_geo_module 创建变量,其值依赖于客户端IP地址的值
http_gzip_module 使用gzip压缩,减少传输数据大小
http_limit_conn_module 限制每个定义键的连接数,特别是来自单个IP地址的连接数
http_limit_req_module 限制每个已定义键的请求处理速率,特别是来自单个IP地址的请求处理速率。
http_map_module 创建变量,其值依赖于其他变量的值。
http_memcached_module 通过请求给memcached服务器
http_proxy_module 通过HTTP请求给其他服务器
http_referer_module 阻止在Referer报头中有无效值的请求
http_rewrite_module 使用正则表达式更改请求URI并返回重定向; 有条件地选择配置。 需要PCRE库。
http_scgi_module 通过请求给到一个SCGI服务器
http_ssi_module 在响应中处理SSI (Server Side Includes,服务器端包含)命令
http_split_clients_module 创建适合A/B测试的变量,也称为分割测试。
http_upstream_hash_module 启用Hash负载均衡方法
http_upstream_ip_hash_module 启用IP Hash负载均衡方法
http_upstream_keepalive_module 启用keepalive连接
http_upstream_least_conn_module 启用最小连接负载均衡方法
http_upstream_zone_module 启用共享内存空间模块
http_userid_module 设置适合客户端识别的cookie
http_uwsgi_module 通过请求给一个uwsgi服务器
-- with-http_ssl_module 支持HTTPS协议
--with-file-aio 启用异步I/O
-- with-http_mp4_module 使能服务器端支持MP4文件
-- with-http_v2_module 支持HTTPv2协议
-- with-stream 启用TCP和UDP代理功能
--with-threads 使能Nginx使用线程池

 

特殊说明:

SCGI:SCGI协议是一个CGI(通用网关接口)协议的替代品, 它是一个应用与HTTP服务器接口标准。

uwsgi:uWSGI是一个Web服务器,它实现了WSGI协议、uwsgi、http等协议,是一个Web服务器(如nginx,uWSGI等服务器)与web应用(如用Flask框架写的程序)通信的一种规范。

WSGI / uwsgi / uWSGI 三个概念的区分:

  • WSGI是一种通信协议。

  • uwsgi是一种线路协议而不是通信协议,在此常用于在uWSGI服务器与其他网络服务器的数据通信。

  • 而uWSGI是实现了uwsgi和WSGI两种协议的Web服务器。

3)、动态添加第三方库

$  ./configure ... --add-dynamic-module=<PATH>

*.so会写入到 prefix/modules/ 目录中

成功添加完动态库后,需要将.so文件添加到Nginx配置文件中

load_module modules/ngx_mail_module.so;

4、安装Nginx

$ make
$ sudo make install

5、检查Nginx配置文件语法

$ sudo nginx -t prefix/conf/nginx.conf

6、启动Nginx

$ sudo nginx

 

Nginx编译安装方式

上一篇:Jenkins部署前后端项目至远程服务器


下一篇:for循环 es6