我是nginx的新手,并尝试使用nginx提供静态内容并获得403错误。我有这样的服务器配置:
server {
listen 8000;
server_name localhost;
root /Users/ismayilmalik/Documents/github/nginx-express;
location / {
index index.html;
}
我已执行以下命令:
chmod -R 755 /nginx-express
chmod -R 644 /nginx-express/*.*
文件夹中有 drwxr-xr-x 严格。这里有什么问题?
答案 0 :(得分:0)
请转到您的nginx错误日志以获取详细信息。
运行此命令以显示上次错误:
tail -20 /var/log/nginx/error.log
答案 1 :(得分:0)
通过位于/var/log/nginx/***.error的错误日志是很好的。我曾遇到类似的问题。解决方案是用户nginx正在运行。
如果nginx以www运行,那么www将无法访问ismayilmalik文件夹,除非您还授予对/ Users / ismayilmalik主文件夹的访问权限,但这不安全。如果您想通过nginx访问您的主文件夹,最好的解决方案是允许nginx作为ismayilmalik运行。
答案 2 :(得分:0)
我终于解决了。实际上,nginx拥有从以下地址提供静态内容的所有权限:
/Users/ismayilmalik/Documents/github/nginx-express;
原因是在启动时nginx无法在其中创建 error.log 文件' sroot目录。手动创建文件后,它工作正常。我正在使用macOs并找到执行以下命令的日志文件夹,以查找nginx的所有enironment变量:
nginx -V
在此之前我已经将nginx用户从 nobody 更改为主配置文件中的admin,如下所示。
user [username] [usergroup]
默认情况下,nginx主进程在 root 下运行,子进程在 nobody 下运行。