【问题标题】:Best practice for serving static files提供静态文件的最佳实践
【发布时间】:2011-03-14 13:55:41
【问题描述】:

我正在 python 网络服务器 (Tornado) 上进行开发。我打算把它放在前面有 nginx 的生产实例中。这将是我第一次自己将某些东西放到生产环境中。我的问题是如何为静态服务设置文件/目录。例如我的应用程序,允许用户将照片上传到网络。我在 Tornado 中收到请求,并保存到磁盘。但是,当用户访问他们的项目页面时,我宁愿从静态服务器中提取图像。我的问题是将图像从动态服务器获取到静态服务器的最佳实践是什么?我是否将图像目录同步到静态服务器,然后运行一个从动态服务器中删除图像的 cron?

【问题讨论】:

    标签: python file static nginx serving


    【解决方案1】:

    最佳实践是使用共享存储,但如果不能使用它,则可以使用 nginx 中的“proxy_store”选项。来自 nginx 文档的示例:

    location /images/ {
        root                 /data/www;
        error_page           404 = @fetch;
    }
    
    location @fetch {
        internal;
    
        proxy_pass           http://backend;
        proxy_store          on;
        proxy_store_access   user:rw  group:rw  all:r;
        proxy_temp_path      /data/temp;
    
        root                 /data/www;
    }
    

    【讨论】:

    • 你能描述一下共享存储的设置吗?我用谷歌搜索了一遍,但找不到如何完成的示例。不需要具体的东西,伪示例会很好用!
    • 任何网络文件系统都可以用作共享存储。例如 NFS。
    • 还有一些公司使用 WebDAV 作为将文件上传到共享存储的协议。
    猜你喜欢
    • 2017-07-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-22
    • 2011-09-04
    • 1970-01-01
    相关资源
    最近更新 更多