【发布时间】:2015-12-13 05:25:18
【问题描述】:
我有一个这种风格的简单 lua-nginx conf
server {
server_name payment.mybackend.fr
payment.mybackend.fr;
set $rails_root /home/deploy/api/MAP;
set $env 'cloud';
location ~ /(paypal|paybox_system) {
content_by_lua_file $rails_root/lib/nginx-redis-payment/$1.lua;
}
}
当我在没有 sudo 的情况下使用当前用户运行 nginx 时,从不调用 lua 脚本,因此不会验证付款。
当我使用 sudo 运行它时,它运行良好。
如何让 nginx 不使用 root 权限来执行我的 lua 脚本?
【问题讨论】:
-
你想要一些奇怪的东西。 Nginx 几乎总是以
root运行。当您以非 root 用户身份启动它时,它将侦听端口 8080,并且无法访问其他用户的文件。 -
我在端口 80 上使用名为“deploy”的用户启动它,这很好。此外,lua 脚本也归该用户所有,该用户拥有这些脚本的所有权限。
-
脚本根本没有运行,还是没有完成它的工作?脚本有什么作用?您是否从 nginx 或脚本中得到任何错误?
-
如果可能的话,我希望看到某种围绕 lua 执行的 strace 包装器。或至少一些 error_log 样式的输出。
-
此脚本用于管理来自 paypal 或 paybox 的回调。我今天会添加一些错误日志。