
openresty
cbmljs
这个作者很懒,什么都没留下…
展开
-
IO多路复用的三种机制Select,Poll,Epoll
I/O多路复用(multiplexing)的本质是通过一种机制(系统内核缓冲I/O数据),让单个进程可以监视多个文件描述符,一旦某个描述符就绪(一般是读就绪或写就绪),能够通知程序进行相应的读写操作select、poll 和 epoll 都是 Linux API 提供的 IO 复用方式。相信大家都了解了Unix五种IO模型,不了解的可以 => 查看这里[1] blocking...转载 2019-12-03 16:09:44 · 256 阅读 · 0 评论 -
Nginx proxy_cache_key and HEAD->GET request
Questions:I have the following Nginx config:http { ... proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=one:8m max_size=3000m inactive=600m; proxy_temp_path /var/tmp; ....原创 2019-10-24 16:33:25 · 858 阅读 · 1 评论 -
NGINX 结合 lua 动态修改upstream
具体思路是:1 > 利用lua中 "lua_shared_dict" 指令开辟一个共享内存空间;2> 通过API动态根据key值&参数修改 upstream (这里使用 host 作为key);3> 利用 proxy_pass 可使用变量特性及lua指令 "set_by_lua" 动态修改当前 upstream 变量即可;以下是利用 qq.com 作为...转载 2019-05-13 14:12:24 · 4101 阅读 · 0 评论 -
proxy_buffers和client_body_buffer_size的区别
client_body_buffer_size 处理客户端请求体buffer大小。用来处理POST提交数据,上传文件等。client_body_buffer_size 需要足够大以容纳如果需要上传POST数据。proxy_buffers处理后端响应,一般是代理服务器请求后端服务的response。如果这个buffer不够大,会引起磁盘IO,response的body内容会先写入临时...原创 2019-04-24 14:29:38 · 4410 阅读 · 0 评论 -
nginx缓冲区优化
关于缓冲, 主要是合理设置缓冲区大小, 尽量避免缓冲到硬盘时的情况proxy_bufferingproxy_buffering这个参数用来控制是否打开后端响应内容的缓冲区,如果这个设置为off,那么proxy_buffers和proxy_busy_buffers_size这两个指令将会失效。 但是无论proxy_buffering是否开启,对proxy_buffer_size都是生效的。...原创 2019-04-24 10:30:48 · 2011 阅读 · 1 评论 -
使用Nginx后如何在web应用中获取用户ip及原理解释
问题背景:在实际应用中,我们可能需要获取用户的ip地址,比如做异地登陆的判断,或者统计ip访问次数等,通常情况下我们使用request.getRemoteAddr()就可以获取到客户端ip,但是当我们使用了nginx作为反向代理后,使用request.getRemoteAddr()获取到的就一直是nginx服务器的ip的地址,那这时应该怎么办?part1:解决方案我在查阅资料时,有一本...原创 2019-03-13 14:44:27 · 411 阅读 · 0 评论 -
Nginx部署https网站
Nginx是一款高性能的网站服务器和反向代理服务器,同时也是一个IMAP、POP3、SMTP等邮件代理服务器;nginx可以作为一个网站服务器进行网站的发布处理,另外nginx可以作为反向代理实现负载均衡的。本文介绍如何在centos6.9环境中,利用Nginx部署https网站,并配置地址重写。1.环境准备:centos7.0主机一台,关闭防火墙和Selinux安装依赖包:yum -y ...原创 2019-03-21 16:51:43 · 670 阅读 · 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 评论 -
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 评论 -
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 评论 -
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 评论 -
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 评论