提供静态文件的最佳实践

0 投票
1 回答
1238 浏览
提问于 2025-04-16 13:39

我正在开发一个Python的网页服务器(Tornado)。我打算把它放到一个生产环境中,并在前面加上nginx。这是我第一次自己把东西放到生产环境里。我想知道如何设置文件和目录来提供静态文件。比如说,我的应用允许用户上传照片到网站。我在Tornado中接收请求,然后把照片保存到硬盘上。但是当用户访问他们的物品页面时,我希望这些图片是从一个静态服务器上获取的。我的问题是,怎样才能把图片从我的动态服务器转移到静态服务器上,才是最好的做法?我是不是应该用rsync把图片目录同步到静态服务器,然后再设置一个定时任务,定期删除动态服务器上的图片?

1 个回答

0

最好的做法是使用共享存储,但如果不能使用共享存储的话,你可以选择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;
}

撰写回答