编译nginx-1.16.1

cd /home/dev/app/source

## 下载压缩包
wget http://nginx.org/download/nginx-1.16.1.tar.gz
## 下载探活模块
git clone https://github.com/yaoweibin/nginx_upstream_check_module.git

## 下载 pcre-8.39.zip
## 下载 zlib-1.2.8.tar.xz 
## 下载 openssl-1.1.0c.tar.gz

## 下载会话保持模块
wget https://bitbucket.org/nginx-goodies/nginx-sticky-module-ng/get/master.tar.gz

#解压
tar zxvf nginx-1.16.1.tar.gz
unzip pcre-8.39.zip
tar xvf zlib-1.2.8.tar.xz
tar xvf openssl-1.1.0c.tar.gz
tar xvzf nginx-goodies-nginx-sticky-module-ng-08a395c66e42.tar
mv nginx-goodies-nginx-sticky-module-ng-08a395c66e42 nginx-sticky-module

## 若使用windows系统clone nginx_upstream_check_module,然后上传至测试环境,需执行以下命令
dos2unix nginx_upstream_check_module/config

cd nginx-1.16.1
patch -p1 < /home/dev/app/source/nginx_upstream_check_module/check_1.16.1+.patch
##  安装目录为 /home/dev/app/build/nginx
./configure  --prefix=/home/dev/app/build/nginx --with-pcre=/home/dev/app/source/pcre-8.39 --with-zlib=/home/dev/app/source/zlib-1.2.8 --with-openssl=/home/dev/app/source/openssl-1.1.0c --with-http_ssl_module --with-http_stub_status_module --with-http_realip_module --add-module=/home/dev/app/source/nginx_upstream_check_module --add-module=/home/dev/app/source/nginx_sticky_module --with-stream

make 
make install

## 进入安装好的目录
cd /home/dev/app/build/nginx

附参数手册

--prefix=/app/nginx
# 安装目录
--conf-path=/app/nginx/conf/nginx.conf
# 配置文件
--sbin-path=/app/nginx/sbin/nginx
# 可执行文件
--http-log-path=/app/nginx/logs/access.log
# 访问日志
--error-log-path=/app/nginx/logs/error.log
# 错误日志
--pid-path=/app/nginx/logs/nginx.pid
# pid文件
--lock-path=/app/nginx/logs/nginx.lock
# lock文件
--with-ld-opt=-Wl,-rpath,/usr/local/lib
# 设置文件链接参数
--with-pcre=/usr/local/src/pcre-8.42
# 指定pcre库源码位置
--with-zlib=/usr/local/src/zlib-1.2.11
# 指定zlib库源码位置
--with-openssl=/usr/local/src/openssl-1.0.2n
# 指定openssl库源码位置
--add-module=/usr/local/src/nginx_upstream_check_module-0.3.0
# 反向代理时,如果后端服务器down,nginx不会识别到,继续发送请求到这台realserver;location中的proxy_next_upstream参数可以解决发送给用户错误页面,
# 但它是先把请求发到这个realserver,然后再转发给别的server,这样就会增加一次转发;nginx_upstream_check_module可以检测后端服务器的状态,
# 如果后端服务器出现异常,则请求不会发送到这台服务器。
--add-module=/usr/local/src/nginx-sticky-module
# 基于cookie实现会话保持,通过分发和识别cookie,来使同一个客户端的请求落在同一台服务器上。
--add-module=/usr/local/src/nginx-upstream-fair-master
# 比内建的负载均衡更加智能的负载均衡模块,目前这个模块已经停止更新了,nginx1.11版本以上就不再支持。
--add-module=/usr/local/src/ngx_cache_purge-2.3
# 该模块使得Nginx可以使用PURGE指令手动清除指定URL的缓存页面。
--add-module=/usr/local/src/lua-nginx-module-0.10.13
# 把 lua 解析器内嵌到 nginx,用来解析并执行lua 语言编写的网页后台脚本。
--add-module=/usr/local/src/ngx_devel_kit-0.3.0
# 以一种可用作其他Nginx模块基础的方式扩展Nginx Web服务器的核心功能,它只是为了帮助减少Nginx模块开发人员需要编写的代码。
--add-module=/usr/local/src/set-misc-nginx-module-0.32
# 该模块是标准的HttpRewriteModule指令的扩展,提供更多功能,如URI转义与非转义、JSON引述、Hexadecimal/MD5/SHA1/Base32/Base64编码与解码、随机数等
--with-http_addition_module
# 可以在响应体的前面或后面附加上数据,
--with-http_dav_module
# 该模块主要是通过WebDAV协议实现文件管理自动化。该模块可以处理HTTP和WebDAV的方法PUT,DELETE,MKCOL,COPY和MOVE。
--with-http_flv_module
# 该模块为Flash Video文件提供伪流服务器端支持,利用请求URL的查询字符串中的start参数处理请求,通过从请求的字节偏移量开始发送内容,并返回FLV头部。
--with-http_gzip_static_module
# 该模块允许发送带有.gz文件扩展名的预压缩文件,而不是普通文件。
--with-http_realip_module
# 获取客户端真实IP。
--with-http_stub_status_module
# 该模块提供nginx的基本状态信息。
--with-http_ssl_module
# 支持HTTPS
--user=nginx
# 设置用户
--group=nginx
# 设置组
1 声望
1 粉丝
0 条评论
推荐阅读
CentOS从零开始部署Nodejs项目
原文地址:[链接]安装nodejs、npm/cnpm {代码...} 安装mysql卸载 {代码...} 安装 {代码...} 启动 {代码...} 登录 {代码...} 修改root密码 {代码...} 允许远程访问,与本地密码区分,是两个密码 {代码...} 安装git...

jigsaw3阅读 5k评论 3

Nginx 配置常用参数,看这一篇就够了
最近在全面学习Nginx,当作笔记了,如有错误,欢迎指出或深入交流。主模块 {代码...} 事件模块 {代码...} http部分 {代码...} 部分参数详细说明server_name {代码...} location {代码...} location表达式类型 {代...

13sai2阅读 1.8k

把 Go 放到 Nginx C module 之中
最近一段时间,我在做一件有趣的事情,让一个 Nginx C module 通过 Go 代码来访问 gRPC 服务。不得不感慨 Go 真的很流行,让人无法拒绝。之前我做 wasm-nginx-module 时就试图把 tinygo 跑在 Nginx 里面,这次则...

spacewander2阅读 2.2k评论 2

化虹为桥 - Nginx 如何代理 UDP “连接”
众所周知,UDP 并不像 TCP 那样是基于连接的。但有些时候,我们需要往一个固定的地址发送多个 UDP 来完成一个 UDP 请求。为了保证服务端能够知道这几个 UDP 包构成同一个会话,我们需要在发送 UDP 包时绑定某个端...

spacewander4阅读 1.1k

Nginx unexpected end of file 配置证书遇到问题,如何解决?
通过 letsencrypt 申请证书后,默认服务器安装了 Nginx 1.8 发现,在默认的 /etc/nginx/sites-enabled/default 内容配置 SSL 的 site.com.key 后。重启 Nginx 出现一下错误:

程序员泥瓦匠1阅读 711

nginx配置ssl证书
{代码...}

eyuxiog1阅读 1.4k

[nginx] 实现域名代理
业务场景有两个系统A、B,A、B两系统均有独立域名,但对外只想暴露A域名。需要实现通过 A域名+B系统子路由 访问 系统B的子页面,图示如下。

DiracKeeko阅读 925

1 声望
1 粉丝
宣传栏