openresty

nginx正向代理配置

可紊 提交于 2019-11-30 20:44:50
一、前言 正向代理功能比较简单,但是原生nginx不支持https代理,如果访问https网站,会报错。 # nginx代理不支持http CONNECT方法: curl: (56) Received HTTP code 400 from proxy after CONNECT 为了实现对https代理的支持,需要对原有nginx源码打补丁,就可以让nginx支持CONNECT模式了。 https://github.com/chobits/ngx_http_proxy_connect_module#build-openresty 二、下载并安装openresty shell> yum -y install lua-devel shell> wget http://dlsw.91donkey.com/software/source/nginx/openresty-1.15.8.1.tar.gz shell> wget http://dlsw.91donkey.com/software/source/nginx/nginx-http-concat_20161124.tgz && tar zxf nginx-http-concat_20161124.tgz shell> wget http://dlsw.91donkey.com/software/source/nginx/ngx

微服务最强开源流量网关Kong

余生长醉 提交于 2019-11-30 18:41:56
前言 在微服务架构中,由于系统和服务的细分,导致系统结构变得非常复杂, 为了跨平台,为了统一集中管理api,同时为了不暴露后置服务。甚至有时候需要对请求进行一些安全、负载均衡、限流、熔断、灰度等中间操作,基于此类种种的客观需求一个类似综合前置的系统就产生了,这就是API网关(API Gateway)。API网关作为分散在各个业务系统微服务的API聚合点和统一接入点,外部请求通过访问这个接入点,即可访问内部所有的REST API服务。目前常用的微服务网关有zuul、gateway,今天来简单介绍一下另一种选择——Kong 。说到Kong可能对大家有点陌生,我们来先了解下另一种不陌生的中间件——OpenResty。 OpenResty OpenResty® 是一个基于 Nginx 与 Lua 的高性能 Web 平台,其内部集成了大量精良的 Lua 库、第三方模块以及大多数的依赖项。用于方便地搭建能够处理超高并发、扩展性极高的动态 Web 应用、Web 服务和动态网关。因此,我们可以做出各种符合我们需要的网关策略的Lua脚本,以其为基础构建高性能的网关系统。 Kong Kong基于OpenResty,是一个云原生、快速、可扩展、分布式的Api 网关。继承了OpenResty的高性能、易扩展性等特点。Kong通过简单的增加机器节点,可以很容易的水平扩展。同时功能插件化

使用nginx做 tcp/udp 负载均衡

我们两清 提交于 2019-11-30 18:01:15
https://docs.nginx.com/nginx/admin-guide/load-balancer/tcp-udp-load-balancer/ 目标:对非http流量进行负载均衡 可选技术:nginx + docker-compose ,,,, 过程: 负载tcp/udp流量需要重新构建一下nginx,官网原文是 built with the --with-stream ,于是找了几个带参数的Dockerfile,大都是半年一年之前的文章了,打镜像不是重点,而且调试起来费时费力。还是想最好直接找一个官方构建好的版本,负载均衡测试后再自己构建镜像也不迟。 在docker hub找了一下,nginx默认镜像不带 --with-stream 参数,也没有找到类似扩展的tag,继续搜寻 docker nginx --with-stream 最终找到openresty,默认 dockerfile 就带了这个参数,最终的docker-compose.yml如下 version: "3" services: openresty: image: openresty/openresty volumes: - ./conf/nginx.conf:/usr/local/openresty/nginx/conf/nginx.conf - ./var/run/openresty/:/var

运维安全——安全防护-OpenResty

荒凉一梦 提交于 2019-11-30 00:42:49
OpenResty ® 是一个基于 Nginx 与 Lua 的高性能 Web 平台,其内部集成了大量精良的 Lua 库、第三方模块以及大多数的依赖项。用于方便地搭建能够处理超高并发、扩展性极高的动态 Web 应用、Web 服务和动态网关。 安装 安装OpenResty 安装依赖包 $ yum install -y readline-devel pcre-devel openssl-devel gcc 下载最新OpenResty源码包 $ cd /usr/local/src/ $ wget https://openresty.org/download/openresty-1.15.8.2.tar.gz 编译安装: $ tar zxvf openresty-1.15.8.2.tar.gz $ cd openresty-1.15.8.2/ $ ./configure --prefix=/usr/local/openresty --with-luajit --with-http_stub_status_module --with-pcre --with-pcre-jit $ gmake && gmake install 补充: 关于gmake和make的区别 配置waf规则 下载waf规则lua文件: waf $ cd /usr/local/src $ git clone https:/

32、Nginx + OpenResty +redis 实现URL地址自取Redis缓存信息

久未见 提交于 2019-11-29 12:48:37
第一步:安装OpenResty 依赖 # apt-get install libreadline-dev libpcre3-dev libssl-dev perl 摘要说明:OpenResty将Nginx核心、LuaJIT、许多有用的Lua库和Nginx第三方模块打包在一起 OpenResty提供了一些常用的ngx_lua开发模块:如 lua-resty-memcached lua-resty-mysql lua-resty-redis lua-resty-dns lua-resty-limit-traffic lua-resty-template 这些模块涉及到如mysql数据库、redis、限流、模块渲染等常用功能组件;另外也有很多第三方的ngx_lua组件供我们使用,对于大部分应用场景来说现在生态环境中的组件已经足够多了;如果不满足需求也可以自己去写来完成自己的需求。 第二步:下载OpenResty # wget http://openresty.org/download/ngx_openresty-1.7.7.2.tar.gz # tar -xvf ngx_openresty-1.7.7.2.tar.gz # cd ngx_openresty-1.7.7.2 第三步:安装OpenResty # ./configure --prefix=/usr/local

使用google-perftools优化nginx内存管理提升性能

时光毁灭记忆、已成空白 提交于 2019-11-29 10:15:21
一、前言 1、使用google开发的google-perftools优化nginx的内存分配效率和速度,帮助在高并发的情况下控制内存的使用。 2、TCMalloc在内存的分配上效率和速度要比malloc高得多。但是nginx的内存占用其实是很少的,一个进程占用的内存大概只有12M左右,所有google-perftools对nginx的优化效果可能不太明显。 二、安装 1、下载并安装google-perftools # 从github上下载perftools工具包 # https://github.com/gperftools/gperftools shell> cd /usr/local/src/ shell> wget https://github.com/gperftools/gperftools/releases/download/gperftools-2.7/gperftools-2.7.tar.gz # 注意: # 1、如果是32位系统,在configure gperftools的时候,可以不添加--enable-frame-pointers参数。 # 2、如果是64位系统,需要先安装libunwind,再在configure gperftools的时候,添加--enable-frame-pointers参数。 shell> yum install epel

模仿京东使用Openresty+Redis做读服务

非 Y 不嫁゛ 提交于 2019-11-29 10:04:15
看了 开涛的Nginx+Lua开发教程 ,很是感兴趣。所以,自己也把环境搭建起来玩。 跟开涛的不同,我使用Vagrant + Ansible来搭建(不要问我为什么不使用Docker)。这样,所有的人只要两条命令就可以搭建好了,而不需要手工一条命令一条命令打。 所谓使用Openresty来做读服务,是指Openresty直接从数据源读数据,然后渲染输出,而不经过应用服务器,比如Tomcat服务器。 Openresty 是一个基于Nginx和LuaJIT的动态Web开发平台。我不知道京东是否是直接使用Openresty还是自己编译Nginx + Lua。反正,我直接使用Openresty。 本次文章就是根据开涛的教程,实现使用 lua-resty-template 做模块引擎,使用Redis做数据源。我把Openresty和Redis都安装在同一台机器上,以方便做实验,当然,如果你想装在不同的服务器,只需要修改下配置就好了。以下是架构: 搭建的步骤: 安装Openresty及其相关的Openresty module: lua-resty-template、lua-resty-redis 安装Redis,启动Redis 配置Openresty,启动Openresty 写页面逻辑代码 整个步骤我都写成了Ansible自动化配置脚本。所以,你已经不需要自己搭建。所有的代码都托管在: http

美团张志桐:美团 HTTP 服务治理实践

核能气质少年 提交于 2019-11-29 07:25:55
2019 年 7 月 6 日,OpenResty 社区联合又拍云,举办 OpenResty × Open Talk 全国巡回沙龙·上海站,美团基础架构部技术专家张志桐在活动上做了《美团 HTTP 服务治理实践》的分享。 OpenResty x Open Talk 全国巡回沙龙是由 OpenResty 社区、又拍云发起,邀请业内资深的 OpenResty 技术专家,分享 OpenResty 实战经验,增进 OpenResty 使用者的交流与学习,推动 OpenResty 开源项目的发展。活动将陆续在深圳、北京、武汉、上海、成都、广州、杭州等城市巡回举办。 首先做下自我介绍,我叫张志桐,毕业于哈尔滨工业大学,2015 年加入美团,目前在美团主要负责 Oceanus 七层负载均衡网关、Mtrace 分布式链路跟踪系统以及 KMS 密钥管理服务等。 美团是 Nginx 的老用户,从创业初期就使用 Nginx,直到 2013 年迁到了阿里的 Tengine,再到今年三四月份,全站服务迁到了 OpenResty 上。从 Tengine 迁到 OpenResty 最根本的原因是升级困难,随着 Nginx 的版本迭代越来越快,导致 Tengine 很难合到官方 Nginx 最新版本上,但是使用 OpenResty 可以平滑地升级整个 Nginx 的社区版本。 Oceanus 美团七层负载均衡网关

nginx+lua构建简单waf网页防火墙

强颜欢笑 提交于 2019-11-29 03:42:20
需求背景 类似于论坛型的网站经常会被黑掉,除了增加硬件防护感觉效果还是不太好,还会偶尔被黑,waf的功能正好实现了这个需求。 waf的作用: 防止sql注入,本地包含,部分溢出,fuzzing测试,xss,SSRF等web攻击 防止svn/备份之类文件泄漏 防止ApacheBench之类压力测试工具的攻击 屏蔽常见的扫描黑客工具,扫描器 屏蔽异常的网络请求 屏蔽图片附件类目录php执行权限 防止webshell上传 nginx 的话我选择春哥开源的:OpenResty一个伟大的项目。 OpenResty 介绍 OpenResty® 是一个基于 Nginx 与 Lua 的高性能 Web 平台,其内部集成了大量精良的 Lua 库、第三方模块以及大多数的依赖项。用于方便地搭建能够处理超高并发、扩展性极高的动态 Web 应用、Web 服务和动态网关。 OpenResty® 通过汇聚各种设计精良的 Nginx 模块(主要由 OpenResty 团队自主开发),从而将 Nginx 有效地变成一个强大的通用 Web 应用平台。这样,Web 开发人员和系统工程师可以使用 Lua 脚本语言调动 Nginx 支持的各种 C 以及 Lua 模块,快速构造出足以胜任 10K 乃至 1000K 以上单机并发连接的高性能 Web 应用系统。 OpenResty® 的目标是让你的Web服务直接跑在 Nginx

CentOS 安装 OpenResty

£可爱£侵袭症+ 提交于 2019-11-29 03:42:10
方案一 1、在 CentOS 系统中添加 openresty 资源库 sudo yum-config-manager --add-repo https://openresty.org/yum/cn/centos/OpenResty.repo 2、安装 openresty sudo yum install openresty 方案二 用方案一安装简单,但是无法安装某些可选组件,比如lua 1、下载 wget https://openresty.org/download/openresty-1.11.2.3.tar.gz 2、解压 tar -xzvf openresty-1.11.2.3.tar.gz 3、安装依赖库 yum install pcre-devel openssl-deve 4、到解压的目录中执行 ./configure --with-luajit make make install OpenResty® 是一个基于 Nginx 与 Lua 的高性能 Web 平台,其内部集成了大量精良的 Lua 库、第三方模块以及大多数的依赖项。用于方便地搭建能够处理超高并发、扩展性极高的动态 Web 应用、Web 服务和动态网关。 OpenResty® 通过汇聚各种设计精良的 Nginx 模块(主要由 OpenResty 团队自主开发),从而将 Nginx 有效地变成一个强大的通用