快速上手 nginx lua 开发 – 由 user_agent 来判断显示不同的页面

怎么快速学习一门新的语言呢? 如果你已经熟练掌握了一门语言,那么其他语言都是想通的。一个小小的需求,可能会遇到很多问题,但是搜索相关的关键字,就能快速实现出来,完成一个小目标,事半功倍。 死记硬背手册,太枯燥了,反正我是看不下去,不如直接来个小项目。 一个小需求 pc、mobile 一个地址有两套页面,需要在后端根据浏览器的 user_agent 来显示不同的页面。 通过 php 来做,当然可以, …

Nginx 通过 Lua + Redis 实现动态封禁 IP

一、背景 为了封禁某些爬虫或者恶意用户对服务器的请求,我们需要建立一个动态的 IP 黑名单。对于黑名单之内的 IP ,拒绝提供服务。 二、架构 实现 IP 黑名单的功能有很多途径: 1、在操作系统层面,配置 iptables,拒绝指定 IP 的网络请求; 2、在 Web Server 层面,通过 Nginx 自身的 deny 选项 或者 lua 插件 配置 IP 黑名单; 3、在应用层面,在请求服 …

京东三级列表页持续架构优化—Golang+Lua(OpenResty) 最佳实践

作者:谢刚,京东商城架构师,负责京东分类列表、凤凰等系统的架构开发工作;之前在搜狐视频负责 UGC 视频架构开发工作。 *** 招聘:京东列表页目前有 Java、Golang、Lua(OpenResty)、数据挖掘等职位,欢迎投简历到 xiegang@jd.com,期待与您的合作 *** 承接上篇《京东三级列表页持续架构优化—前端优化实践》。 分类列表入口 分类列表入口,可以通过京东首页首屏左侧导 …

基于 OpenResty 和 Node.js 的微服务架构实践

什么是微服务? 传统的单体服务架构是单独服务包,共享代码与数据,开发成本较高,可维护性、伸缩性较差,技术转型、跨语言配合相对困难。而微服务架构强调一个服务负责一项业务,服务可以单独部署,独立进行技术选型和开发,服务间松耦合,服务依赖的数据也独立维护管理。虽然微服务存在部署复杂、运维难度较大、分布式事务控制难、容错要求高等缺点,但总体而言,微服务的优点远大于其复杂性。 微服务架构需要注意哪些问题? …

OpenResty 动态负载均衡

OpenResty 动态负载均衡 在之前提到的OpenResty/Nginx的负载均衡当中,当服务器启动之后,upstream中的上游服务器就是固定死的了,做不到动态的变更。这里面说到的变更,其实更多指的是增加机器。因为当上游服务器不可用时,upstream会自动将服务器摘除,但是当新增服务器时,upstream就做不到了。传统的负载均衡办法,就是能是修改配置,然后重启服务。下面介绍一下动态负载均 …

OpenResty快速入门

OpenResty快速入门 黑马程序员 2020-03-12 18:02:00 1 OpenResty简介 1.1 了解OpenResty OpenResty是一个基于 Nginx 与 Lua 的高性能 Web 平台,其内部集成了大量精良的 Lua 库、第三方模块以及大多数的依赖项。用于方便地搭建能够处理超高并发、扩展性极高的动态 Web 应用、Web 服务和动态网关。 简单地说OpenResty …