参考图片上传和nginx代理图片访问
图片上传
https://www.cnblogs.com/TJ21/p/12609112.html
代理图片访问
https://www.cnblogs.com/TJ21/p/12609017.html
绕过网关图片上传方式:
绕过网关:直接访问图片上传微服务
我们这里的微服务的端口为 8082
注意:原则上,我们是不能把除了网关以外的服务对外暴露的,不安全。
采取nginx从写访问路径的方绕过网关直接访问图片上传微服务
nginx配置路径重写
rewrite "用来匹配路径的正则" 重写后的路径 [指令];
完整代码
View Code
- 首先,我们映射路径是/api/upload,而下面一个映射路径是 / ,根据最长路径匹配原则,/api/upload优先级更高。也就是说,凡是以/api/upload开头的路径,都会被第一个配置处理 - `proxy_pass`:反向代理,这次我们代理到8082端口,也就是upload-service服务 - `rewrite "^/api/(.*)$" /$1 break`,路径重写: - `"^/api/(.*)$"`:匹配路径的正则表达式,用了分组语法,把`/api/`以后的所有部分当做1组 - `/$1`:重写的目标路径,这里用$1引用前面正则表达式匹配到的分组(组编号从1开始),即`/api/`后面的所有。这样新的路径就是除去`/api/`以外的所有,就达到了去除`/api`前缀的目的 - `break`:指令,常用的有2个,分别是:last、break - last:重写路径结束后,将得到的路径重新进行一次路径匹配 - break:重写路径结束后,不再重新匹配路径。 我们这里不能选择last,否则以新的路径/upload/image来匹配,就不会被正确的匹配到8082端口了 修改完成,输入`nginx -s reload`命令重新加载配置。然后再次上传试试