debian7编译安装tengine添加lua和ldap模块
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模块的更多相关文章
- alpine编译安装tengine,并使用supervisor启动
Alpine是一个小型的linux系统,官方docker镜像只有不到5MB,非常适合作为容器镜像. Alpine Linux is a security-oriented, lightweight L ...
- 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 ...
- centos7 yum安装nginx和 编译安装tengine
说明 我这里给大家演示一下如何安装nginx,nginx我就不多介绍了,然后我再说一点就是,安装的两种方法都可以,编译安装和yum安装,我不能每个都演示两遍呀,所以看到我这博客的你,学会举一反三好吧? ...
- CentOS7 源码编译安装Tengine
简介 Tengine是由淘宝网发起的Web服务器项目.它在Nginx的基础上,针对大访问量网站的需求,添加了很多高级功能和特性.它的目的是打造一个高效.安全的Web平台. 发展 Tengine的性能和 ...
- CentOS 7.2编译安装Tengine
Tengine官网上有个非常简单的教程,中间并未涉及到一些常用的设置,所以仅供参考.一下午为本人的安装步骤及过程. 配置firewalld,iptables,关闭SELINUX 1.安装必要的编译环境 ...
- nginx在centos 7中源码编译安装【添加grpc的支持】
安装依赖软件 1.安装编译工具gcc gcc是一个开源编译器集合,用于处理各种各样的语言:C.C++.Java.Ada等,在linux世界中是最通用的编译器,支持大量处理器:x86.AMD64.Pow ...
- 【01】Nginx:编译安装/动态添加模块
写在前面的话 说起 Nginx,别说运维,就是很多开发人员也很熟悉,毕竟如今已经 2019 年了,Apache 更多的要么成为了历史,要么成为了历史残留. 我们在提及 Nginx 的时候,一直在强调他 ...
- zabbix源码编译安装以及添加第一台host监控
基础准备 硬件需求 数据库需求 软件需求 其他软件需求 安装 安装方式 source code 编译好的二进制包 rpm或者deb 源码编译安装部署zabbix以及附件 前提准备 最小化安装操作系 ...
- 编译安装LAMP之php(fpm模块)
一,准备工作实验平台为CentOS6.6,先下载所需的安装包,我使用的是php-5.4.26.tar.gz,下载地址 http://mirrors.sohu.com/php/ 编译安装的目录:/usr ...
随机推荐
- Java字符串连接操作的性能问题
首先,看一段实验程序: package com.test; class StringTest { public static void main(String[] args) { long start ...
- PHPCMS V9 二次开发常用代码集
0:调用最新文章,带所在版块 {pc:get sql="SELECT a.title, a.catid, b.catid, b.catname, a.url as turl ,b.url a ...
- 小刘的深度学习---Faster RCNN
前言: 对于目标检测Faster RCNN有着广泛的应用,其性能更是远超传统的方法. 正文: R-CNN(第一个成功在目标检测上应用的深度学习的算法) 从名字上可以看出R-CNN是 Faster RC ...
- 基于Linux-3.9.4内核增加简单的时间片轮转功能
简单的时间片轮转多道程序内核代码 原创作品转载请注明出处https://github.com/mengning/linuxkernel/ 作者:sa18225465 一.安装 Linux-3.9.4 ...
- SSZipArchive解压失败的原因
SSZipArchive 解压失败的原因是路径不对解压失败后,修正路径后再次解压就会出现解压失败的情况,代理方法也不会走也没有日志输出.解决方法就是删除手机上的软件再次运行就可以了.这个问题也就在内部 ...
- mkswap命令详解
基础命令学习目录首页 原文链接:http://blog.51cto.com/arlen99/1743841 mkswap命令用于在一个文件或者设备上建立交换分区.在建立完之后要使用sawpon命令开始 ...
- proxyTable中pathWrrite的使用
proxyTable中pathWrrite的使用 proxyTable: { '/iclient': { target: 'http://xxx.xx.com/iclient/xx/xx', chan ...
- 2017-2018-2 1723 『Java程序设计』课程 结对编程练习-四则运算-准备阶段
2017-2018-2 1723 『Java程序设计』课程 结对编程练习-四则运算-准备阶段 在一个人孤身奋斗了将近半个学期以后,终于迎来的我们的第一次团队协作共同编码,也就是,我们的第一个结对编程练 ...
- 1、数据库与excel表格的数据导入导出
1.居民用户界面中,excel数据导入导出: 2.其他5张表数据显示到本角色主页的container容器中.
- Mevan(转)
Missing artifact com.oracle:ojdbc6:jar:11.2.0.1.0问题解决 ojdbc包pom.xml出错 置顶 2017年08月23日 10:55:25 阅读数:96 ...