openresty

Openresty Nginx 安装搭建

做~自己de王妃 提交于 2020-04-06 05:48:46
openresty安装: 1.下载openresty wget https://openresty.org/download/openresty-1.15.8.3.tar.gz 2.安装依赖包 yum -y install gcc gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel 3.编译openresty ./configure --with-http_ssl_module --with-http_iconv_module --prefix=/home/app/openresty make && make install 4.配置conf cd /home/app/openresty/nginx/conf vi nginx.conf #user nobody; worker_processes 1; #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; #pid logs/nginx.pid; events { worker_connections 1024; } http { include mime.types; default_type application/octet

OpenResty和Netty最大连接数测试

…衆ロ難τιáo~ 提交于 2020-03-27 01:46:53
3 月,跳不动了?>>> 前提:更改服务器的配置文件,支持大量连接。 参考:http://ju.outofmemory.cn/entry/49498 修改服务器配置。 OpenResty: 1 参考 http://www.cnblogs.com/picaso/p/4211551.html 安装 OpenResty 2 官网 http://openresty.org/en/getting-started.html 3 更改配置文件: http {   keepalive_timeout 2000000; --长连接timeout,一个很大的数 keepalive_requests 8192; --每个连接最大请求数 } events { worker_connections 1024000; --1百万连接 } 4 客户端: 自己study项目程序 netty.demo.OpenRestyClient 类 当OpenResty服务端设置启动1个work时,最大连接数达到27万后,服务端会将所有的连接断开。 疑问:是不是达到上限后,会自动断开空闲连接? 于是,更改程序,客户端每5分钟发一次请求,保持活跃。测试发现,同样,达到27万后,服务端断开所有连接。 疑问:设置多个work,是不是可以提高连接数量? 测试发现,当设置2个work时,到达27万,出现同样现象。 使用dmesg命令

高频访问IP限制 --Openresty(nginx + lua) [反爬虫之旅]

泄露秘密 提交于 2020-03-17 00:51:12
嗯….本人是从写爬虫开始编程的,不过后面做web写网站去了,好了,最近web要搞反爬虫了,哈哈哈,总算有机会把之以前做爬虫时候见识过的反爬一点点给现在的网站用上了~ 做爬虫的同志,有怪莫怪喽~还有求别打死 > < 首先要提一下AJAX,现在普天下网页几乎都是往特定的数据接口请求数据了,除了什么首屏渲染这种服务端渲染好html以外,几乎没有什么静态网页了。我看了有一些帖子说AJAX让爬虫难做,可是我觉得结合一些工具(比如chrome的开发者工具),找到AJAX所请求的后端数据接口一点也不难,而且现在自己也写过一段时间的web后端数据接口,发现接口的设计往往都是往简单易懂的方向做,外加从2000年出现REST风格,更是让接口设计越来越简明了。所以其实如果一个web站点没有察觉到有爬虫的存在,或者察觉到了,但是没有想要做一点数据保护措施,它是不会再AJAX上做文章的,那么如果单纯的AJAX,其实并没有任何反爬的作用,所以别再说AJAX反爬什么的了,何况AJAX生出来就不是为了反爬的 然而在现在的前后端分离的时代,前端反爬还是有的搞的,基于我不太懂JavaScript,就不展开来说,我只是听说过什么参数加密啊,数据混淆什么的,但其实概括起来都是一种对数据接口的隐藏,这让一些不太懂js的人,也跟着懵逼了(比如说我 : <),但是你要知道,前端代码最终还是要请求一个url的

openresty cjson转义斜线/为\\/

天涯浪子 提交于 2020-03-13 22:00:51
现象如下: print(cjson.encode({url="http://www.baidu.com"})); {"url":"http:\/\/www.biau.com"} 分析发现cjson实现时对/进行转义,json规范里约定/可以转义也可以不转义。解决办法修改cjson源码,目录在openresty-x.x.x.x/bundle/lua-cjson-y.y.y.y/ 修改文件:lua_cjson.c 搜索char2escape NULL , NULL , NULL , NULL , NULL , NULL , NULL , "\\/" , 最后一个字符替换为: NULL , NULL , NULL , NULL , NULL , NULL , NULL , NULL, 重新编译openresty解决。 来源: oschina 链接: https://my.oschina.net/osgit/blog/3193624

OpenResty-限流

一世执手 提交于 2020-03-12 16:43:38
OpenResty实现限流的几种方式 限制接口总并发数 按ip 限制其并发连接数 其实此处没有设置 burst 的值,就是单纯的限制最大并发数,如果设置了 burst的值,并且做了延时处理,其实就是对并发数使用了漏桶算法,但是如果不做延时处理,其实就是使用的令牌桶算法。参考下面对请求数使用漏桶令牌桶的部分,并发数的漏桶令牌桶实现与之相似 local limit_conn = require "resty.limit.conn" -- 限制一个 ip 客户端最大 1 个并发请求 -- burst 设置为 0,如果超过最大的并发请求数,则直接返回503, -- 如果此处要允许突增的并发数,可以修改 burst 的值(漏桶的桶容量) -- 最后一个参数其实是你要预估这些并发(或者说单个请求)要处理多久,以便于对桶里面的请求应用漏桶算法 local lim, err = limit_conn.new("my_limit_conn_store", 1, 0, 0.5) local key = ngx.var.binary_remote_addr -- commit 为true 代表要更新shared dict中key的值, -- false 代表只是查看当前请求要处理的延时情况和前面还未被处理的请求数 local delay, err = lim:incoming(key, true)

Nginx的OpenResty应用

。_饼干妹妹 提交于 2020-03-09 16:33:12
参考 https://www.cnblogs.com/digdeep/p/4859575.html Lua的优点 Lua是一种轻量级、可嵌入式的脚本语言,这样可以非常容易的嵌入到其他语言中使用。另外Lua提供了协程并发,即以同步调用的方式进行异步执行,从而实现并发,比起回调机制的并发来说代码更容易编写和理解,排查问题也会容易。Lua还提供了闭包机制,函数可以作为First Class Value 进行参数传递,另外其实现了标记清除垃圾收集。 因为Lua的小巧轻量级,可以在Nginx中嵌入Lua VM,请求的时候创建一个VM,请求结束的时候回收VM。 什么是ngx_lua ngx_lua是Nginx的一个模块,将Lua嵌入到Nginx中,从而可以使用Lua来编写脚本,这样就可以使用Lua编写应用脚本,部署到Nginx中运行,即Nginx变成了一个Web容器;这样开发人员就可以使用Lua语言开发高性能Web应用了。 ngx_lua提供了与Nginx交互的很多的API,对于开发人员来说只需要学习这些API就可以进行功能开发,而对于开发web应用来说,如果接触过Servlet的话,其开发和Servlet类似,无外乎就是知道接收请求、参数解析、功能处理、返回响应这几步的API是什么样子的。 OpenResty OpenResty® 是一个基于 Nginx 与 Lua 的高性能 Web 平台

openresty + nginx-http-sysguard 调研使用

别说谁变了你拦得住时间么 提交于 2020-03-08 17:37:48
openresty 扩展使用 install https://openresty.org/cn/ openresty + TMD (nginx-http-sysguard) https://github.com/alibaba/nginx-http-sysguard , 淘宝开源限流模块 安装 --with-pcre=DIR 是源码的目录, 不是编译后的目录 wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.40.tar.gz wget https://www.openssl.org/source/openssl-1.0.2k.tar.gz >brew install pcre openssl # 安装依赖, 需要下载源码 >git clone https://github.com/taobao/nginx-http-sysguard.git # 现在TMD >patch -p1 < ../../nginx-http-sysguard/nginx_sysguard_1.3.9.patch # 使用patch修复文件,在目录./bundle/nginx-XX执行,是待修复的文件的上级目录 >./configure --prefix=/Users/a002/IdeaProjects/openresty-1

nginx-openresty实现限流

不羁的心 提交于 2020-03-08 17:35:38
nginx-openresty实现限流 这个没啥说的,比较简单. NGINX配置 location ~ /lua_request { #default_type 'text/html'; default_type 'text/json'; content_by_lua_file '/Users/liuhao/my-shell/lua/index.lua'; #content_by_lua_file '/Users/liuhao/my-shell/lua/middle.lua'; } lua代码 --官方包 local cjson = require("cjson") --json操作 local restyRedis = require("resty.redis")--Redis操作 local redis = restyRedis.new() --封装Redis local MyRedis = {db_index=0,use_pool=false} --redis connect function MyRedis:connect() --设置超时(毫秒) redis:set_timeout(2000) --建立连接 local ok, err = redis:connect("127.0.0.1", 6379) if not ok then self.errMsg(

买115网盘资源低价

微笑、不失礼 提交于 2020-03-07 21:10:08
买115网盘资源低价 115资源库永久客服【芯:7960つ1048】█ 永久客服【芯:7960つ1049】█ 一、前期准备 安装OpenResty。官网有详细的下载、安装文档 安装IDEA。同时以下安装插件 Lua nginx Support OpenResty Lua Support 二、创建并配置项目 创建一个名为luademo1的Lua项目 创建conf、src目录,并添加nginx.conf、build.xml和helloworld.lua文件 nginx.conf文件 worker_processes 1; error_log logs/error.log info; events { worker_connections 1024; } http { default_type application/octet-stream; access_log logs/access.log; lua_package_path 'luademo1/?.lua;;'; server { listen 8080; server_name localhost; default_type text/html; location = /favicon.ico { log_not_found off; access_log off; } location /test { content_by

老司机115网盘资源你懂的

£可爱£侵袭症+ 提交于 2020-03-07 19:01:37
老司机115网盘资源你懂的 115资源库永久客服【芯:7960つ1048】█ 永久客服【芯:7960つ1049】█ 一、前期准备 安装OpenResty。官网有详细的下载、安装文档 安装IDEA。同时以下安装插件 Lua nginx Support OpenResty Lua Support 二、创建并配置项目 创建一个名为luademo1的Lua项目 创建conf、src目录,并添加nginx.conf、build.xml和helloworld.lua文件 nginx.conf文件 worker_processes 1; error_log logs/error.log info; events { worker_connections 1024; } http { default_type application/octet-stream; access_log logs/access.log; lua_package_path 'luademo1/?.lua;;'; server { listen 8080; server_name localhost; default_type text/html; location = /favicon.ico { log_not_found off; access_log off; } location /test { content