1、安装开发环境

# aptitute update
# aptitude install -y build-essential
# aptitude install -y libldap2-dev openssl libssl-dev

2、升级gcc和glibc(debian7自带的版本太低,编译会报错)

# vim /etc/apt/sources.list
deb http://ftp.debian.org/debian sid main # apt-get update
# apt-get -t sid install libc6 gcc # gcc -v
gcc version 6.4.0 20170724 (Debian 6.4.0-2)

3、下载nginx-auth-ldap模块包

# git clone https://github.com/kvspb/nginx-auth-ldap.git

4、安装lua

# aptitude install -y lua5.1 liblua5.1-0 liblua5.1-0-dev

# lua -v
Lua 5.1.5 Copyright (C) 1994-2012 Lua.org, PUC-Rio

5、下载nginx-lua模块包

# wget https://github.com/openresty/lua-nginx-module/archive/v0.10.9rc8.tar.gz
# tar xvf v0.10.9rc8.tar.gz
# mv lua-nginx-module-0.10.9rc8/ lua-nginx-module

6、编译安装tengine

查看帮助

--with-http_lua_module             enable ngx_http_lua_module (will also enable --with-md5 and --with-sha1)
--with-http_lua_module=shared enable ngx_http_lua_module (shared) (will also enable --with-md5 and --with-sha1)
--with-lua-inc=PATH set Lua headers path (where lua.h/lauxlib.h/... are located)
--with-lua-lib=PATH set Lua library path (where liblua.{a,so} are located, only support Lua-5.1.x) --with-http_reqstat_module=shared enable ngx_http_reqstat_module (shared)

下载源码包解压编译

# cd /usr/local/src
# wget http://tengine.taobao.org/download/tengine-2.2.0.tar.gz
# tar xvf tengine-2.2.0.tar.gz
# cd tengine-2.2.0/
# ./configure --prefix=/usr/local/nginx01 --with-http_reqstat_module=shared --add-module=../nginx-auth-ldap --add-module=../lua-nginx-module # make -j 32
# make install

或者把lua模块编译成动态shrared

# ./configure --prefix=/docker/tengine-2.2.0 --with-http_reqstat_module=shared --with-http_lua_module=shared --add-module=../nginx-auth-ldap

拷贝动态共享对象文件到安装目录的modules目录

# make dso_install

7、修改主配置文件

# vim nginx.conf
user www;
worker_processes 8;
worker_rlimit_nofile 409600;
pid sbin/nginx-tengine.pid; #error_log logs/error.log;
#error_log logs/error.log notice;
error_log logs/error.log info; events {
use epoll;
worker_connections 409600;
} # load modules compiled as Dynamic Shared Object (DSO)
#
dso {
# load ngx_http_lua_module;
load ngx_http_reqstat_module.so;
} http {
include mime.types;
default_type application/octet-stream;
server_names_hash_bucket_size 128;
client_header_buffer_size 32k;
large_client_header_buffers 4 32k;
client_max_body_size 64m;
sendfile on;
server_tokens off;
tcp_nopush on;
keepalive_timeout 60;
tcp_nodelay on;
add_header Xdebug proxy01;
proxy_connect_timeout 60;
proxy_read_timeout 60;
proxy_send_timeout 60;
proxy_buffer_size 128k;
proxy_buffers 4 256k;
proxy_busy_buffers_size 256k;
proxy_temp_file_write_size 256k;
proxy_ignore_client_abort on;
gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.0;
gzip_comp_level 2;
gzip_types text/plain text/css application/json application/x-javascript text/xml text/javascript image/png image/jpgi application/javascripti image/jpeg;
gzip_vary on; lua_package_path "/usr/local/nginx/lua/redis.lua;;"; map $http_upgrade $connection_upgrade {
default "";
'' "";
} log_format oupeng_logs '$remote_addr - $remote_user [$time_local] "$request" "$request_body" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" $http_x_forwarded_for '
'$request_time $upstream_response_time'; log_format mini.oupeng '"$remote_addr" "$remote_user" "$time_local" "$request" '
'"$status" "$body_bytes_sent" "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for" '
'"$http_x_operette_branding" "$http_x_nhorizon_channel_id" '
'"$http_x_operamini_screen_width" "$http_x_operamini_screen_height" '
'"$http_x_operamini_id" "$http_x_operamini_phone_ua"'; log_format main '[$time_local] $status $remote_addr "$request" "$upstream_addr"'; log_format json '{"@timestamp":"$time_iso8601",'
'"host":"$server_addr",'
'"clientip":"$remote_addr",'
'"remote_user":"$remote_user",'
'"request":"$request",'
'"http_user_agent":"$http_user_agent",'
'"cookie_uid":"$cookie_uid",'
'"size":$body_bytes_sent,'
'"responsetime":$request_time,'
'"upstreamtime":"$upstream_response_time",'
'"upstreamhost":"$upstream_addr",'
'"http_host":"$host",'
'"url":"$uri",'
'"domain":"$host",'
'"xff":"$http_x_forwarded_for",'
'"referer":"$http_referer",'
'"status":"$status"}'; include vhosts/*.conf ;
}

8、添加ldap配置

# mkdir vhosts
# cd vhosts/ # vim a_ldap.conf
ldap_server ldapsv {
url ldap://192.168.2.164:389/dc=beijing,dc=op?uid?sub?(&(objectClass=person));
binddn "cn=admin,dc=beijing,dc=op";
binddn_passwd "D3llD3ll";
group_attribute uid;
group_attribute_is_dn on;
require valid_user;
}

9、添加kibana代理配置

# vim kibana.conf
upstream kibana-oupeng-com {
server 192.168.3.56:5601 weight=10 max_fails=3 fail_timeout=10;
server 192.168.3.49:5601 weight=10 max_fails=3 fail_timeout=10;
server 192.168.3.57:5601 weight=10 max_fails=3 fail_timeout=10;
ip_hash;
check interval=5000 rise=2 fall=5 timeout=1000 type=tcp;
} server {
listen 80;
server_name kibana.oupeng.com;
# auth_basic "Restricted Access";
# auth_basic_user_file /usr/local/nginx/conf/htpasswd.users; auth_ldap "Forbidden";
auth_ldap_servers ldapsv; location / {
proxy_pass http://kibana-oupeng-com;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}

10、启动nginx

# /usr/local/nginx/sbin/nginx -t
# /usr/local/nginx/sbin/nginx

11、查看版本和模块信息

# /usr/local/nginx/sbin/nginx -V

debian7编译安装tengine添加lua和ldap模块的更多相关文章

  1. alpine编译安装tengine,并使用supervisor启动

    Alpine是一个小型的linux系统,官方docker镜像只有不到5MB,非常适合作为容器镜像. Alpine Linux is a security-oriented, lightweight L ...

  2. CentOS 7编译安装Tengine+PHP+MariaDB全程笔记

    安装环境:CentOS7 3.10.0-693.5.2.el7.x86_64 准备源码包: pcre-8.41.tar.gz openssl-1.0.1h.tar.gz zlib-1.2.11.tar ...

  3. centos7 yum安装nginx和 编译安装tengine

    说明 我这里给大家演示一下如何安装nginx,nginx我就不多介绍了,然后我再说一点就是,安装的两种方法都可以,编译安装和yum安装,我不能每个都演示两遍呀,所以看到我这博客的你,学会举一反三好吧? ...

  4. CentOS7 源码编译安装Tengine

    简介 Tengine是由淘宝网发起的Web服务器项目.它在Nginx的基础上,针对大访问量网站的需求,添加了很多高级功能和特性.它的目的是打造一个高效.安全的Web平台. 发展 Tengine的性能和 ...

  5. CentOS 7.2编译安装Tengine

    Tengine官网上有个非常简单的教程,中间并未涉及到一些常用的设置,所以仅供参考.一下午为本人的安装步骤及过程. 配置firewalld,iptables,关闭SELINUX 1.安装必要的编译环境 ...

  6. nginx在centos 7中源码编译安装【添加grpc的支持】

    安装依赖软件 1.安装编译工具gcc gcc是一个开源编译器集合,用于处理各种各样的语言:C.C++.Java.Ada等,在linux世界中是最通用的编译器,支持大量处理器:x86.AMD64.Pow ...

  7. 【01】Nginx:编译安装/动态添加模块

    写在前面的话 说起 Nginx,别说运维,就是很多开发人员也很熟悉,毕竟如今已经 2019 年了,Apache 更多的要么成为了历史,要么成为了历史残留. 我们在提及 Nginx 的时候,一直在强调他 ...

  8. zabbix源码编译安装以及添加第一台host监控

    基础准备 硬件需求 数据库需求   软件需求 其他软件需求 安装 安装方式 source code 编译好的二进制包 rpm或者deb 源码编译安装部署zabbix以及附件 前提准备 最小化安装操作系 ...

  9. 编译安装LAMP之php(fpm模块)

    一,准备工作实验平台为CentOS6.6,先下载所需的安装包,我使用的是php-5.4.26.tar.gz,下载地址 http://mirrors.sohu.com/php/ 编译安装的目录:/usr ...

随机推荐

  1. Java字符串连接操作的性能问题

    首先,看一段实验程序: package com.test; class StringTest { public static void main(String[] args) { long start ...

  2. PHPCMS V9 二次开发常用代码集

    0:调用最新文章,带所在版块 {pc:get sql="SELECT a.title, a.catid, b.catid, b.catname, a.url as turl ,b.url a ...

  3. 小刘的深度学习---Faster RCNN

    前言: 对于目标检测Faster RCNN有着广泛的应用,其性能更是远超传统的方法. 正文: R-CNN(第一个成功在目标检测上应用的深度学习的算法) 从名字上可以看出R-CNN是 Faster RC ...

  4. 基于Linux-3.9.4内核增加简单的时间片轮转功能

    简单的时间片轮转多道程序内核代码 原创作品转载请注明出处https://github.com/mengning/linuxkernel/ 作者:sa18225465 一.安装 Linux-3.9.4 ...

  5. SSZipArchive解压失败的原因

    SSZipArchive 解压失败的原因是路径不对解压失败后,修正路径后再次解压就会出现解压失败的情况,代理方法也不会走也没有日志输出.解决方法就是删除手机上的软件再次运行就可以了.这个问题也就在内部 ...

  6. mkswap命令详解

    基础命令学习目录首页 原文链接:http://blog.51cto.com/arlen99/1743841 mkswap命令用于在一个文件或者设备上建立交换分区.在建立完之后要使用sawpon命令开始 ...

  7. proxyTable中pathWrrite的使用

    proxyTable中pathWrrite的使用 proxyTable: { '/iclient': { target: 'http://xxx.xx.com/iclient/xx/xx', chan ...

  8. 2017-2018-2 1723 『Java程序设计』课程 结对编程练习-四则运算-准备阶段

    2017-2018-2 1723 『Java程序设计』课程 结对编程练习-四则运算-准备阶段 在一个人孤身奋斗了将近半个学期以后,终于迎来的我们的第一次团队协作共同编码,也就是,我们的第一个结对编程练 ...

  9. 1、数据库与excel表格的数据导入导出

    1.居民用户界面中,excel数据导入导出: 2.其他5张表数据显示到本角色主页的container容器中.

  10. Mevan(转)

    Missing artifact com.oracle:ojdbc6:jar:11.2.0.1.0问题解决 ojdbc包pom.xml出错 置顶 2017年08月23日 10:55:25 阅读数:96 ...