使用NGINX,uwsgi和Flask限制文件路径曝光

时间:2016-06-21 10:47:27

标签: python nginx flask uwsgi

我使用Centos作为我的操作系统,并使用uwsgi成功运行了我的Flask gallery_app。

My Flask gallery_app基本上是一个图库,您可以上传图像并查看和下载。该应用程序工作正常,nginx服务很好。 我服务图像的方式是使用烧瓶:

send_from_directory

我在路线/图像中实现了

@app.route('/image/<path:img_path>')
def image(img_path):
    head, tail = os.path.split(img_path)
    return send_from_directory(head, tail)

我的应用结构如下:

gallery_app
 |_app.py
 |_config.py
 |_templates
 |_models
 |_views
 |_static
 |_**uploads**

我在操作系统中的应用程序位于:

 /var/www/gallery_app

当我将文件上传到上传目录时,我将路径保存为:

uploads/category/filename.png

当我想在烧瓶中显示图像时

<img src="DOMAIN.com/image/uploads/category/filename.png">

我收到文件不存在的错误。当我这样做时:

<img src="DOMAIN.com/image/home/user/var/www/gallery_app/uploads/category/filename.png">

事情正常。我该怎么做才能隐藏应用位置?我尝试将上传目录移至 home / user 并将完整路径存储为 /home/user/uploads/category/filename.png 和有用。很明显,应用程序在root / 中看起来有没有办法使应用程序或服务器看到 / var / www / gallery_app / uploads 而不暴露客户端的完整路径?

我尝试添加:  在nginx的服务器块中root /var/www/gallery_app但是没有用,我缺少什么?如果我不能正确理解这一点,如果你能指导我一个资源,我可以阅读以理解这个

0 个答案:

没有答案