if (!-f $request_filename) {
proxy_pass http://production-app;
break;
}
}
}
进一步思考
虽然此设置运行的比较好,但是我想指出一些缺点:
上面的代码是我们access_by_lua脚本的简化。我们也处理保存POST提交的请求,JS加入到到页面更新会话自动处理的令牌更新等,你可能不需要这些功能,而事实上,我不认为我需要它们,直到我们开始了我们在内部系统进行系统测试。 我们有一些结点,可以通过一定的后台任务基本认证。这些被修改,数据是从一个外部存储中检索,如S3。注意,这并不总是可能的,所以使用的可能不是你想要的答案。 Oauth2只是我选择的标准。在理论上,你可以使用facebook授权来实现类似的结果。你也可以将这种方法限速,或存储在数据库中的不同的访问级别如在你的Lua脚本方便操作和检索使用。如果你真的很无聊,你可以重新实现基本认证在Lua,这只需要你。 有没有测试控制系统等。测试者会害怕当他们意识到这将是一段时间的集成测试。你可以重新运行上面的嘲笑为全球范围内注入变量以及执行脚本,但它不是理想的设置。 你还需要修改应用程序识别你的新的访问标头。内部工具将是最简单的,但你可能需要为供应商软件作出一定的让步。