
openresty
openresty学习
cbmljs
这个作者很懒,什么都没留下…
展开
-
ngx.var.arg与ngx.req.get_uri_args的区别
ngx.var.arg_xx与ngx.req.get_uri_args["xx"]两者都是为了获取请求uri中的参数,例如http://pureage.info?strider=1为了获取输入参数strider,以下两种方法都可以:local strider = ngx.var.arg_striderlocal strider = ngx.req.get_uri_args["...原创 2019-03-21 14:17:41 · 3130 阅读 · 0 评论 -
Nginx 启动报 [emerg] bind() to 0.0.0.0:XXXX failed (13: Permission denied)错误处理
系统启动Nginx后,报[emerg] bind() to 0.0.0.0:XXXX failed (13: Permission denied)错误的处理方式,分为两种:第一种:端口小于1024的情况:[emerg] bind() to 0.0.0.0:80 failed (13: Permission denied)原因是1024以下端口启动时需要root权限,所以sudo...转载 2019-03-15 14:41:59 · 3899 阅读 · 0 评论 -
使用Nginx后如何在web应用中获取用户ip及原理解释
问题背景:在实际应用中,我们可能需要获取用户的ip地址,比如做异地登陆的判断,或者统计ip访问次数等,通常情况下我们使用request.getRemoteAddr()就可以获取到客户端ip,但是当我们使用了nginx作为反向代理后,使用request.getRemoteAddr()获取到的就一直是nginx服务器的ip的地址,那这时应该怎么办?part1:解决方案我在查阅资料时,有一本...原创 2019-03-13 14:44:27 · 411 阅读 · 0 评论 -
openresty proxy_cache 多盘负载均衡
我们知道nginx可以用proxy_cache来实现缓存。但是服务器可能有多个磁盘,一个proxy_cache_path只能设置一个path,怎样才能充分利用服务器的所有磁盘吗?现在,假设我们有一台服务器,挂了3块硬盘,我们希望把该服务器用作“缓存代理”,缓存后端服务器的全部响应信息。预期的缓存数据量远大于可用的内存。它实际上是我们个人CDN的一个缓存节点。毫无疑问,在这种情况下,最重要的事情...原创 2019-03-13 10:57:26 · 950 阅读 · 0 评论 -
Nginx 提示host not found in upstream 错误解决方法
nginx的upstream配置如下:upstream nos { server nos.xxx.com weight=10 max_fails=3 fail_timeout=30s;}检查语法报错:root@ubuntu:~/odd/nginx/sbin# ./nginx -tnginx: [emerg] host not found in upstream "nos...原创 2019-03-13 10:25:28 · 88972 阅读 · 2 评论 -
Openresty的同步输出与流式响应
默认情况下, ngx.say和ngx.print都是异步输出的,先来看一个例子:location /test { content_by_lua_block { ngx.say("hello") ngx.sleep(3) ngx.say("the world") }}执行测试,可以发现首先, /test 响应内容是在触发请求...转载 2019-02-22 18:01:46 · 392 阅读 · 0 评论 -
【openresty】如何处理 Dog Pile Effect
在缓存系统中,缓存总有失效的时候,比如我们经常使用的 Memcache 和 Redis ,都会设置超时时间;而一旦缓存到了超时时间失效之后,如果此时再有大量的并发向数据库发起请求,就会造成服务器卡顿甚至是系统当机。这就是 Dog Pile Effect 。避免这样的 Dog Pile 效应,通常有两种方法:使用独立的更新进程使用独立的进程(比如 cron job)去更新缓存,而不是...原创 2019-02-22 15:50:31 · 881 阅读 · 0 评论 -
OpenResty 技能图谱以及学习要点
这是早些时候openresty社区发布的技能图谱,留着备用。下面是文字版本基本概念 HTTP TDD (驱动测试开发) RESTful API & API GateWay 微服务 DSL C10K & C1M 非阻塞 & 异步 I/O event loop coroutine Streaming process 流处理 I/O mut...转载 2019-02-22 15:24:48 · 340 阅读 · 0 评论 -
openresty中server_name匹配规则
官网说明:http://nginx.org/en/docs/http/server_names.html需要记住的是两点:1)完全匹配,匹配成功则终止搜索2)不匹配,默认走第1个server3)如何禁止IP访问和非法域名访问测试一:完全匹配和默认匹配nginx配置如下:worker_processes 1;events { worker_connections ...原创 2019-03-11 11:23:01 · 1250 阅读 · 0 评论 -
nginx+lua读取请求body
Nginx中可以使用在lua块中使用ngx.req.get_body_data()获取http请求的消息体。代码如下:server { listen 8080; charset utf-8; server_name localhost; location ~/cbmljs/(.*)/(.*) { content_by_lua_blo...原创 2019-02-21 10:26:59 · 9284 阅读 · 4 评论 -
Nginx和OpenResty专栏帖
原文转自:https://blog.youkuaiyun.com/u010648555/article/details/78468364本帖是用于统计整理Nginx和Openresty相关的学习博客和资料,方便自己学习和后期快速查找对应的知识!Nginx 学习Nginx官網 : http://nginx.org/en/Nginx中文文档 : http://www.nginx.cn/doc/N...转载 2018-11-22 20:40:00 · 1086 阅读 · 0 评论 -
openresty windows环境搭建
windows下搭建openresty环境的文章大多补全,我这里参考:IDEA中配置OpenResty开发环境 。这里面可以完成绝大多数的安装步骤,但是在最后一步卡主了:本人是个java小白,不会使用ant来构建自动化拷贝。一度差点放弃,要使用linux环境开发。发现IDEA自带的configurations功能可以解决这个问题。打开编辑配置文件,快捷键Alt+Shift+F10,...原创 2018-11-22 17:10:38 · 4222 阅读 · 0 评论