前言:
- 问题描述:有两台服务器,一台可以访问外网,一台不能,现在已经将服务部署到那台不能访问外网的服务器中,然后需要外网访问该服务,因此想通过Nginx的反向代理转发请求,以便外网也能访问服务;但启用Nginx的反向代理后,由于访问地址和请求地址的不同,导致每次访问后端的Session都不一致,进而导致通过SessionId保存的验证码总是失效
步骤:
- 方法一:添加cookie代理配置,从网上看的,但对我的项目不起作用
location /GetCode/ {
proxy_pass http://192.168.100.215:18607/;
proxy_cookie_path /GetGetCode/ /; #添加cookie代理配置
}
- 方法二:前端访问后端以及其他服务的地址都通过Nginx代理
如下,前端访问后端时并不直接访问后端,而是通过Nginx代理,然后再访问后端,这样就能保证实际地址和访问地址一致,进而保证Session一致
先修改前端访问后端的配置文件,修改访问地址为Nginx的地址
ADMIN_API=http://27.17.43.117:10113/GetCode/
然后在Nginx的配置文件nginx.conf中配置如下,即通过Nginx访问后端
location /GetCode/ {
proxy_pass http://192.168.100.215:18607/;
}
文章描述了在两台服务器环境中,一台无法访问外网,通过Nginx的反向代理设置尝试让外部能够访问部署在其上的服务。然而,这导致了Session不一致,从而使得验证码失效。作者尝试了两种方法,包括添加cookie代理配置和通过Nginx代理所有前后端通信,以保持Session的一致性,但遇到了问题。


解决Nginx的反向代理导致Session每次都不一致,进而导致验证码总是失效的问题&spm=1001.2101.3001.5002&articleId=130957060&d=1&t=3&u=512d4ed91e584b17b01867cd8b69a12c)
4570

被折叠的 条评论
为什么被折叠?



