0
点赞
收藏
分享

微信扫一扫

nginx如果静态文件不存在则反向代理到后端

幸福的无所谓 2022-09-27 阅读 199

需求:

为gerrit插件avatars-external提供avatar服务,当用户.png不存在时,调用接口生成,已经存在直接返回。


这里用到nginx反向代理、try_files alias

重命名根目录,这里用alias重命名请求路径,当文件存在直接返回,不存在则走@genpic标记

因为location @genpic里面proxy_pass不能有uri,所以又起了一个8899服务,到后端接口服务。

server {
listen 80;
# avatar
location /avatar/ {
alias /opt/workspace/py-project/myback/upload/avatars/;
try_files $uri @genpic;
}
location @genpic {
proxy_set_header Host $host:$server_port;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://localhost:8899;
}
}
# avatar proxy_pass to generate new picture
server {
listen 8899;
location / {
proxy_set_header Host $host:$server_port;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://localhost:8000/api/v1/;
}

}

访问

http://example.com/avatar/username.png

首先找/opt/workspace/py-project/myback/upload/avatars/username.png存不存在,不存在则到8899服务生成并返回


举报

相关推荐

0 条评论