我有一台服务器(Ubuntu 16.04)和一个名为coxier
的用户。
我将Nginx配置为代理请求。我创建了一个文件etc/nginx/sites-available/myproject
。
server {
listen 80;
server_name 101.200.36.xx;
location / {
include uwsgi_params;
uwsgi_pass unix:/home/coxier/iemoji/server/iemoji.sock;
}
}
在此瓶子项目中,服务器接收请求,然后为此请求生成.gif
文件。
首先我直接使用flask#send_file
发送大约1MB的gif文件,但速度非常慢。
所以我决定优化请求。
我有一个问题。 如何生成生成的gif的网址?
我试过如下。
server {
listen 80;
server_name 101.200.36.xx;
root /home/coxier/iemoji/server/output;
location / {
include uwsgi_params;
uwsgi_pass unix:/home/coxier/iemoji/server/iemoji.sock;
}
}
例如,我想访问/home/coxier/iemoji/server/output/a3dfa3eb21daffc7085f71630cbd169e/output.gif
。
然后我将http://101.200.36.xx/a3dfa3eb21daffc7085f71630cbd169e/output.gif
返回给用户。
但是nginx会返回 404 Not Found 。
答案 0 :(得分:1)
从https://docs.nginx.com/nginx/admin-guide/web-server/serving-static-content/,我找到解决方案。
server {
listen 80;
server_name 101.200.36.xx;
location / {
include uwsgi_params;
uwsgi_pass unix:/home/coxier/iemoji/server/iemoji.sock;
}
location ~ \.(gif) {
root /home/coxier/iemoji/server/output;
sendfile on;
sendfile_max_chunk 1m;
}
}
您应该在location
块中重新定义root。
然后你就可以生成这样的url:
http://101.200.36.xx/a3dfa3eb21daffc7085f71630cbd169e/output.gif.