如何编译加载Tengine ntlm模块?

Nginx

1 前言

一个问题,一篇文章,一出故事。
笔者最近需要使用nginx ntlm模块,于是整理此文。
关于ntlm模块的功能,请参阅如下介绍,
– “nginx-ntlm-module”模块允许代理NTLM身份验证
– “nginx-ntlm-module”模块收到客户端“Negotiate”或“NTLM”开头的认证标头字段则触发模块
– “nginx-ntlm-module”模块收到客户端“Negotiate”或“NTLM”开头的认证标头字段则触发模块
– “nginx-ntlm-module”模块会把上游服务器与客户端链接绑定并保持身份验证上下文

2 最佳实践

2.1 实践环境

如果你没有Tengine环境,可参阅如下章节部署,

如何编译安装Tengine?

2.2 编译前准备

2.2.1 准备Tengine安装包

cd ~/
wget https://github.com/alibaba/tengine/archive/refs/tags/2.4.0.tar.gz -O tengine-2.4.0.tar.gz
tar -xf tengine-2.4.0.tar.gz

2.2.2 准备模块的编译安装包

cd ~/tengine-2.4.0/modules
wget https://github.com/gabihodoroaga/nginx-ntlm-module/archive/refs/tags/v1.19.3.tar.gz -O nginx-ntlm-module_v1.19.3.tar.gz
tar -xf nginx-ntlm-module_v1.19.3.tar.gz

2.3 重新编译nginx

2.3.1 执行nginx预编译

cd ~/tengine-2.4.0/
./configure \
#...
--add-module=./modules/nginx-ntlm-module-1.19.3

注:“#…”表示省略Nginx的基本编译参数

2.3.2 重新编译nginx

cd ~/tengine-2.4.0/
make

2.3.3 重新安装部署nginx

cd ~/tengine-2.4.0/
make install

2.4 配置粘贴

2.4.1 增加测试配置

vim /etc/nginx/nginx.conf

加入如下配置,

upstream example {
    ntlm;
    server example01.cmdschool.org:443;
    server example02.cmdschool.org:443;
}

然后,你需要使用如下命令确认配置无语法错误,

nginx -t

2.4.2 重载配置使服务生效

systemctl reload nginx.service

参阅文档
======================
非官方模块的使用
——————-
https://github.com/gabihodoroaga/nginx-ntlm-module/blob/master/README.md

ntlm模块的GitHub
———————
https://github.com/gabihodoroaga/nginx-ntlm-module

nginx官方模块的使用方法(用法与本章阐述的开源模块有差异且只有企业版本支持)
———————
http://nginx.org/en/docs/http/ngx_http_upstream_module.html#ntlm

Nginx官方推荐的第三方模块
————————
https://www.nginx.com/resources/wiki/modules/

没有评论

发表回复

Nginx
如何解决https请求不安全http页被阻止问题?

1 前言 一个问题,一篇文章,一出故事。 笔者最近代理公司应用,发现https的页面有请求不安全的h …

Nginx
如何Nginx代理上游的子项目或文件夹?

1 前言 一个问题,一篇文章,一出故事。 笔者接到任务需要把Tomcat的其中一个应用号使用Ngin …

Nginx
如何安装部署RHEL 9 Nignx?

1 前言 一个问题,一篇文章,一出故事。 笔者需要基于RHEL 9部署Nginx环境,于是整理此文。 …