Press "Enter" to skip to content

分类: NGINX

深入理解 Lua 脚本在 OpenResty 中的加载机制、生命周期和变量作用域

这是一个非常棒的实战问题。理解 Lua 脚本在 OpenResty 中的加载机制、生命周期和变量作用域,是避免内存泄漏和数据污染(比如 A 用户看到 B 用户的数据)的关键。 1. 脚本是如何寻找的?(require 机制) 在 OpenResty 中,require 函数的行为和标准 Lua 是一样的,它依赖于 package.path 来寻找文件。但是,在 Nginx 环境下,我们需要通过 N…

Leave a Comment

OpenResty 底层原理的深度解析

OpenResty 是一个基于 Nginx 与 LuaJIT 的高性能 Web 平台。要理解它的底层原理,关键在于理解 Nginx 的事件驱动模型是如何与 LuaJIT 的协程(Coroutine) 完美结合的。 简单来说,OpenResty 的核心魔法在于:让开发者用同步的 Lua 代码逻辑,实现底层的异步非阻塞 I/O。 以下是 OpenResty 底层原理的深度解析,分为几个核心板块: 1.…

Leave a Comment

NPM卡登录页面,显示bad gateway

最近发现搭建的npm(nginx-proxy-manager)没法登录了。 趁机研究了下,发现NPM自身服务的配置在 /etc/nginx/conf.d/production.conf 我们看到api他转发到一个 http://127.0.0.1:3000 看起来像是一个node服务,看了下官方源码,后端服务在 /app目录下面,我们切换到 /app目录之后执行 node index.js,会发现…

1 Comment

NginxProxyManager 配置upstream 负载均衡

NPM默认不支持配置upstream来配置多个后端服务进行负载均衡。 本质来说npm就是一个nginx加一些自动化通用配置而已,负载功能应该是支持的。 在网上查了很多资料,默认npm的界面应该是配置不出来的,他们的GitHub的iuuse里面有个人的回答似乎可以变通的实现这个功能 Hi Guys, I know there is another way to achieve load balanc…

Leave a Comment

在Docker容器中为NGINX增加配置脚本

目前有个java项目,前后端分离的,他有一个前端web工程。 我们通常的web打包方法是给前端项目打包到一个NGINX容器中去,然后给NGINX配置特定的请求,比如 api开头的请求,转发到后端项目去。 我们这个后端项目可能测试环境和生产环境的地址不一样,我们希望在部署的时候通过环境变量来注入到这个NGINX中去,实现部署时,动态的告诉NGINX应该将api转发到哪里去。 Dockerfile文件…

Leave a Comment

NGINX标签 root 对比alias

当前我有这样一个NGINX配置 我的期望是,如果我访问的是 localhost,那么帮请求发送到 nginx1下面的静态资源。如果是访问的localhost/op,那么请求发送到nginx2下面的镜头资源。 直白的就是说同一个nginx配置,我期望通过后面的location配置多个静态站点。 这个配置文件是按照我的理解写的,但是在实际使用的时候发现nginx的行为好像并没有按照我的期望去工作。 实…

Leave a Comment

scp拷贝文件symlink变成文件问题

背景 我一直在使用 Nginx Proxy Manager 这个软件来当我的主NGINX使用,他提供了友好的管理界面和便捷SSL证书管理功能。 作为一个企图将一切容器化的狂热分子,我的NGINX Proxy Manager(后面我简称npm)也是使用容器部署的。某天我尝试进行迁移演练的时候发现我将npm的配置文件使用scp命令迁移到另一台主机之后,npm会报奇怪的错误日志: The error w…

Leave a Comment