提供静态文件的最佳实践
我正在开发一个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;
}