server { listen 80; server_name site.in; root /root/site-demo/; access_log /var/log/site/access_log; error_log /var/log/site/error_log; location / { proxy_pass http://127.0.0.1:4000/; proxy_redirect http://127.0.0.1:4000 http://site.in; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } }
当我试图把过期部分静态文件进入conf它失败。 我读了这可能是由于静态文件是由瓶而不是nginx服务。 如果是的话,我应该把什么样的变化带到上面的conf文件中,以便我的项目可以通过nginx完成静态文件服务。
根据答案我改变了conf如下。 现在所有的静态文件显示403错误。
server { listen 80; server_name site.in; root /root/site-demo/; access_log /var/log/site/access_log; error_log /var/log/site/error_log; location / { proxy_pass http://127.0.0.1:4000/; proxy_redirect http://127.0.0.1:4000 http://site.in; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } location /static { alias /root/site-demo/static; autoindex on; expires max; } }
添加到你的nginx配置:
location /static { alias /path/to/your/static/folder; autoindex on; expires max; }
编辑
nginx要求整个树是可读的,而不仅仅是你的根在nginx.conf中的起始位置。 所以命令
sudo chmod -R 777 /root/site-demo/static
应该解决权限问题。 但是,我认为,出于安全原因,将网站放在Web服务器的/root
目录中并不是一件好事。 通常一个站点放在/var/www
文件夹下。
PS
chmod -R 777
命令为拥有者,组和其他人授予读取,写入和执行文件夹及其所有子文件夹中的文件的权限。
在这里检查你的nginx配置:
/etc/nginx/sites-enabled/ /etc/nginx/sites-available/
我遇到了同样的问题,你描述注意到,我有几个配置文件只留下一个配置文件修复此网站也是有帮助的: https : //realpython.com/blog/python/kickstarting-flask-on-ubuntu-setup-and -deployment /