Lob*_*ter 1 lua nginx openresty
我正在尝试在OpenResty中创建基本的hello单词页面.如果我使用content_by_lua,它工作正常,但是当我尝试使用content_by_lua_file时,我遇到了这个错误:
2015/01/22 13:52:35 [alert] 2183#0: lua_code_cache is off; this will hurt performance in /Users/lobster/documents/web_server/conf/nginx.conf:10
2015/01/22 13:52:38 [error] 2223#0: *4 failed to load external Lua file "/Users/lobster/documents/web_server/./lua/main.lua": cannot open /Users/lobster/documents/web_server/./lua/main.lua: Permission denied, client: 127.0.0.1, server: , request: "GET / HTTP/1.1", host: "localhost:8080"
Run Code Online (Sandbox Code Playgroud)
但它没有意义,因为我可以轻松地更改/Users/lobster/documents/web_server/lua/main.lua文件.有我的配置:
worker_processes 1;
error_log logs/error.log;
events {
worker_connections 1024;
}
http {
lua_package_path '/lua/main.lua;';
server {
lua_code_cache off;
listen 8080;
location / {
default_type 'text/plain';
content_by_lua_file ./lua/main.lua;
}
}
}
Run Code Online (Sandbox Code Playgroud)
我从root启动nginx,因此nginx可以访问我计算机上的任何文件.我做错了什么?
UPD:我使用content_by_lua修复了它,里面有require
小智 6
我也遇到了这个问题,我通过添加:
user root root;
Run Code Online (Sandbox Code Playgroud)
在我的nginx.conf,因为我的lua脚本文件的用户和组是root.
你也可以改变你的lua脚本文件所有者.
小智 5
nginx通常有2个进程,一个是master进程,另一个是worker进程。主进程由root用户运行,工作进程由用户运行nobody,因此您应该确保nobody用户可以读取/Users/lobster/documents/web_server/./lua/main.lua文件。
顺便提一句:
rensike在nginx.conf中添加user root root;,工作进程将由root用户运行,所以他用另一种方式解决了你的问题。
| 归档时间: |
|
| 查看次数: |
4333 次 |
| 最近记录: |