基于 ngx_http_auth_request_module 的 Nginx 反向代理 LDAP 认证。Golang 实现
# git clone https://github.com/shanghai-edu/nginx-ldap-auth # go get ./... # chmod +x control # ./control build # ./control pack
这里会 pack 出一个 tar 包,拿去部署即可 也可以直接从 release 下载编译好的版本
# tar -zxvf nginx-ldap-auth-0.1.tar.gz # cp nginx.conf /etc/nginx/nginx.conf # mv cfg.example.json cfg.json // and change it # service nginx reload # ./control start
根据自己的实际配置情况修改 cfg.json
{ // ldap config "ldap": { "addr": "ldap.example.org:389", "baseDn": "dc=example,dc=org", "bindDn": "cn=manager,dc=example,dc=org", "bindPass": "password", "authFilter": "(&(uid=%s))", "attributes": ["uid", "cn", "mail"], "tls": false, "startTLS": false }, // control config "control":{ "ipAcl":{ "deny":["127.0.0.1","192.168.0.0/24","192.168.1.0-192.168.1.255"], // 这些 IP 会被直接干掉 "direct":[] // 直通的 IP 不需要认证 }, "timeAcl":{ "deny":["00:00-08:00","17:00-23:59"], // 这些时间范围的访问会被 deny "direct":[] // 这些时间访问会直通 }, "allowUser":["user1"] // 允许认证通过的用户名,如果允许所有的 LDAP 用户通过认证,那么这里留空。 }, "http": { "debug":false, "ips":["127.0.0.1"], // 调用 API 所信任的 IP 范围 "listen": "0.0.0.0:8080" } }
Nginx nginx-auth-ldap认证 官方网站: https://github.com/kvspb/nginx-auth-ldap 环境: CentOS 7.1 nginx-1.10.0 openldap-2.4.44 请参看 LNMP源码安装配置 OpenLDAP 2.4.x源码安装配置 一.添加nginx-auth-ldap nginx模块 编译nginx-auth-ldap模块需要
关于利用Nginx实现Ldap统一认证,官方也给出了相关的文档和相应的示例代码。 本文章是结合Django框架和简化认证过程。 1. 安装Nginx中相应的模块 实现Ldap登录主要用到Nginx的http_auth_request_module模块,旧版本的Nginx默认是不安装,可以通过命令行:nginx -V 检查一下是否有安装,没安装的自行百度安装。 2. 实现原理 建议大家先看两遍官方的
比Nginx - Basic Authentication稍微高级一点点的LDAP认证。 Install http_auth_request_module sudo ./configure --with-http_stub_status_module --with-http_ssl_module --with-http_auth_request_module sudo make sudo make
使用nginx走ldap认证: 将原nginx进行备份: [root@daya-02 nginx-1.12.2]# mv /usr/sbin/nginx /usr/sbin/nginx.bak [root@daya-02 nginx-1.12.2]# cp -r /etc/nginx/ /etc/nginx_bak 查看当前安装好的nginx版本: [root@daya-02 ~]# nginx
LDAP应用篇(3)Nginx接入 实验环境:Oracle Linux R8 在搞Nginx比较错愕的是,居然 Nginx 并未内置对LDAP的支持,需要单独编译。然而 yum 安装的 nginx 并不支持导入模块,不得不再次温习一下编译安装 Nginx 的路数了。 下载组件 从 github 中下载组件的源代码: cd ~ && git clone https://github.com/kvsp
1.下载nginx 访问http://nginx.org/en/download.html 下载合适的版本 2.安装nginx 安装nginx之前需要先安装nginx依赖的包 yum install gcc-c++ yum install -y pcre pcre-devel yum install -y zlib zlib-devel yum install -y openssl openssl
一.添加nginx-auth-ldap nginx模块 编译nginx-auth-ldap模块需要ldap.h头文件,所以需要先安装ldap库 yum -y install openldap-devel 在编译nginx时,添加上模块编译参数,如 cd /usr/local/src git clone https://github.com/kvspb/ngi
1、安装依赖。 yum -y install openldap-devel yum install pcre pcre-devel -y yum -y install openssl openssl-devel yum groupinstall "Development Tools" -y 2、下载nginx-auth-ldap模块。 git clone https://github.com/kv
安装 git clone https://github.com/kvspb/nginx-auth-ldap.git wget http://nginx.org/download/nginx-1.18.0.tar.gz yum -y install openldap-devel pcre-devel openssl-devel tar -zxvf nginx-1.18.0.tar.gz cd ngi
主要内容:1. 代理服务器介绍,2. 将请求传递给代理的服务器,3. 传递请求标头,4. 配置缓冲区,5. 选择传出IP地址本文介绍代理服务器的基本配置。 您将学习如何通过不同协议将NGINX请求传递给代理的服务器,修改发送到代理服务器的客户端请求标头,以及配置来自代理服务器的响应缓冲。 代理服务器的基本配置目录 代理服务器介绍 将请求传递给代理的服务器 传递请求标头 配置缓冲区 选择传出IP地址 1. 代理服务器介绍 代理通常用于在多个服务器之间分配负载,无缝地显示来自不同网站的内容,或者通过
Nginx 是一个高性能的 HTTP 和反向代理服务器,代码完全用 C 实现,基于它的高性能以及诸多优点,我们可以把它设置为 hyperf 的前置服务器,实现负载均衡或 HTTPS 前置服务器等。 配置 Http 代理 # 至少需要一个 Hyperf 节点,多个配置多行 upstream hyperf { # Hyperf HTTP Server 的 IP 及 端口 server
本小节,我们继续学习 Nginx 在 七层反向代理中的其它几种比较常见的情况,比如 web 服务中的 WebSocket 协议的反向代理和 uwsgi 协议的反向代理。 1. WebSocket的反向代理 WebSocket 是目前比较成熟的技术了, WebSocket 协议为创建客户端和服务器端需要实时双向通讯的 webapp 提供了一个选择。服务器可以向浏览器推送相关消息,这样在前端实现的某个
Nginx 最强大的地方是在于其 HTTP 请求的反向代理,也即常说的七层反向代理。在这一层代理中,通过 Nginx 框架提供的相关配置,我们能在该层将发送过来的 http 协议转换成各种其他的协议比如 fastcgi 协议、uwsgi协议、grpc、http(高版本协议)、websocket协议等。这样使用 Nginx 框架,我们可以支持多种应用服务(java web、python web等)的
本文向大家介绍Nginx反向代理websocket配置实例,包括了Nginx反向代理websocket配置实例的使用技巧和注意事项,需要的朋友参考一下 最近有一个需求,就是需要使用 nginx 反向代理 websocket,经过查找一番资料,目前已经测试通过,本文只做一个记录 1.下载 tengine 最近的源码 2.安装基础的依赖包 3.解压编译安装 nginx.conf 的配置如下: test
本文向大家介绍nginx https反向代理tomcat的2种实现方法,包括了nginx https反向代理tomcat的2种实现方法的使用技巧和注意事项,需要的朋友参考一下 反向代理 在计算机世界里,由于单个服务器的处理客户端(用户)请求能力有一个极限,当用户的接入请求蜂拥而入时,会造成服务器忙不过来的局面,可以使用多个服务器来共同分担成千上万的用户请求,这些服务器提供相同的服务,对于用户来说,