Nginx配置实现CORS

在开发的时候,我们经常会遇到跨域问题,我们通常的解决方案是使用CORS或是JSONP来解决,但是更常用的解决方案便是CORS了,因为JSONP只支持GET请求,关于CORS的相关知识可以参考阮一峰的跨域资源共享 CORS 详解这篇文章。

阅读更多

OpenResty 访问系统环境变量

在编写程序时,我们经常会依据不同的环境使用不同的配置,之前一直以为 OpenResty 无法访问系统的环境变量,所以使用一种很 low 的方式去加载不同环境的配置。现在才发现自己还是对 Nginx 配置了解的不够全。其实 Nginx 的核心功能中就存在一个 env指令,可以实现我们的需求。下面来说明下这个 env 指令。

阅读更多

lapis的命令行工具

命令参考

Lapis 的命令行为您提供了一小些工具以便于您使用 Lapis 项目。

对于任何需要环境作为参数的命令,如果没有指定环境,则使用默认环境。如果目录中存在 lapis_environment.lua 文件,那么将使用该文件的返回值,否则将使用 development 环境 。

阅读更多

lapis的工具函数

工具函数

工具函数使用如下方式引入。

1
local util = require("lapis.util")

阅读更多

lapis的输入验证

验证事例

Lapis 附带了一组用于处理外部输入的校验器。这里有一个简单的例子:

阅读更多

lapis的异常处理

错误的种类

Lapis 区分两种错误:可恢复和不可恢复错误。 Lua 的运行时在执行期间抛出的错误或调用错误被认为是不可恢复的。 (这也包括 Lua 内置函数 assert

因为不可恢复的错误不会被用户捕获,所以 Lapis 捕获它们并向浏览器打印一个异常消息。任何已经运行的操作都可能会被中止,Lapis 将打印一个特殊视图来显示堆栈以及将 status 设置为 500

阅读更多

lapis配置之lua语法

配置示例

Lapis 的配置模块提供了对递归合并 table 的支持。

例如,我们可以定义一个基本配置,然后覆盖更多具体的配置声明中的一些值:

阅读更多

lapis的配置及环境

Lapis 被设计于依据不同环境载入不同的配置来运行服务器。例如,可能您开发环境的配置设置为本地数据库的URL,禁用代码缓存和单个worker。然后,您生产环境的配置可能设定为远程数据库的 URL,启用代码缓存和8个worker

阅读更多

lapis请求处理

每个被Lapis处理的HTTP请求在被Nginx处理后都遵循相同的基本流程。第一步是路由。路由是 url 必须匹配的模式。当你定义一个路由时,你也得包括一个处理函数。这个处理函数是一个常规的Lua/MoonScript函数,如果相关联的路由匹配,则将调用该函数。

阅读更多

创建Lapis应用程序

生成一个新项目

如果您尚未阅读,请阅读入门指南,了解有关创建新项目骨架的信息以及OpenResty,Nginx配置和lapis命令的详细信息。

您可以在当前目录中通过运行以下命令启动一个新的Lua项目:

1
lapis new --lua

阅读更多