我是nginx的新手。最近,我尝试使用nginx投放静态内容。
以下是我的nginx配置文件:
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name localhost;
location /services {
root /home/stone/source/javascript/demo/www;
try_files $uri $uri/ =404;
index index.html;
}
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://127.0.0.1:3000/;
proxy_redirect off;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_redirect off;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
当用户请求“ http://localhost/index.html”时,它会按预期运行,并转到“ http://127.0.0.1:3000/index”。但是,当用户请求“ http://localhost/services/demo.html”时,应该转到“ /home/stone/source/javascript/demo/www/services/demo.html”,但没有,并且返回404错误。我错过了什么?
答案 0 :(得分:0)
我自己弄清楚。我的Nginx用户没有访问/ home / stone文件夹的权限。 / home / stone的所有者显示如下:
drwx------. 59 stone stone 4096 Mar 13 19:40 stone
因此,其他用户无法访问Stone文件夹。如果我执行此命令
sudo chmod o+x /home/stone
然后一切都按预期工作!