如何避免Nginx将url decode
2024-08-29 22:05:13
灵感来自:https://my.oschina.net/jastme/blog/528541
这是最近玩微服务架构遇到的一个情况,因为Spring Boot 1.5的网关不支持websocket的转发,所以我使用了Nginx作为最外层的网关,单独转发websocket(rest api还是走apigateway)。同时用Nginx部署静态web客户端。
但是随着功能的扩展,我发现之前配置的Nginx在转发带有中文encode的url时,会将url decode,然后转发给apigateway微服务,这时候spring框架会抛出400异常,无法识别url中的字符。
location ~ ^/gate/(.*) {
proxy_pass http://127.0.0.1:8081/$1;
}
上面的配置时我之前的配置,Nginx会将gate/后的url decode后再拼接发送给apigateway。
后来受这个帖子(https://my.oschina.net/jastme/blog/528541)的启发,将配置改为如下:
location ~ ^/gate {
if ($request_uri ~* ^/gate/(.*)$) {
proxy_pass http://127.0.0.1:8081/$1;
}
}
这时,Nginx将不会decode url,直接将url发送给后台的微服务,我的目的也就达到了。
最新文章
- ASP.NET Button、ImageButton、LinkButton、HyperLink区别
- 高级java必会系列二:多线程经常使用的3个关键字:synchronized、ReentrantLock、volatile
- visual studio错误解决 [error LNK1104: 无法打开文件“gdi32.lib”]
- 封装ios静态库碰到的一些问题(一)
- lua二进制操作函数
- myeclipse6.5中使用Alt+/不自动提示的修改
- java编译错误:varargs 方法的非 varargs 调用
- Linux 终端访问 FTP 及 上传下载 文件
- Wininet笔记一
- Maven创建工程项目如何下载所需要的jar包
- Ubuntu下配置tftp服务
- ReentrantLock与synchronized的差别
- js中()()问题
- 应用服务器GC回收常见问题总结
- [JavaScript] requireJS基本使用
- DB2修改自增主键起始值
- cgi、fastcgi及php-fpm分别是什么
- 【Java并发编程六】线程池
- InstallShield 读注册表函数 RegDBGetKeyValueEx ()执行失败
- Git 查看提交历史(分布式版本控制系统)
热门文章
- spring-boot-maven-plugin not found的解决方案
- Gridea博客无法载入CSS样式的解决办法
- PhpStorm 配置本地文件自动上传至服务器
- 在@Data注释lombok上使用继承警告等于/ hashCode(Warning equals/hashCode on @Data annotation lombok with inheritance)
- JavaWeb——JDBC
- 免费JS甘特图组件dhtmlxgantt
- vue2.0与3.0响应式原理机制
- linux使用createrepo制作本地yum源
- inux软件安装管理之——dpkg与apt-*详解
- dpkg -S /usr/lib/mate-notification-daemon/mate-notification-daemon