- 26
- 0
在做vue+springboot+nginx的时候,发现使用localhost登录后无法访问接口,每次都会提示没有登录而被拒绝访问,感觉每次都是另外一台服务器在访问一样。查看请求,发现第二次请求并没有发送登录后的sessionId过去,所以判断是cookie未保存。测试发现localhost和127.0.0.1都无法保存上cookie,换成内网IP,在本地hosts文件映射一个域名到本机,或者直接使用postman访问springboot都是可以的。原因未知,大家可以讨论下。nginx配置如下:`
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
keepalive_timeout 65;
gzip on;
server {
listen 80;
server_name localhost;
proxy_set_header Host $host;
#charset koi8-r;
#access_log logs/host.access.log main;
location ~ .*\.(html|htm|gif|jpg|jpeg|bmp|png|ico|txt|js|css|ttf|woff)$ {
rewrite /login.html /index.html permanent;
root D:/Vue/bmsfront/dist;
index index.html;
}
location = / {
root D:/Vue/bmsfront/dist;
index index.html;
}
location / {
proxy_pass http://back_app;
}
}
upstream back_app {
ip_hash;
server localhost:8080;
}
# another virtual host using mix of IP-, name-, and port-based configuration
#
#server {
# listen 8000;
# listen somename:8080;
# server_name somename alias another.alias;
# location / {
# root html;
# index index.html index.htm;
# }
#}
# HTTPS server
#
#server {
# listen 443 ssl;
# server_name localhost;
# ssl_certificate cert.pem;
# ssl_certificate_key cert.key;
# ssl_session_cache shared:SSL:1m;
# ssl_session_timeout 5m;
# ssl_ciphers HIGH:!aNULL:!MD5;
# ssl_prefer_server_ciphers on;
# location / {
# root html;
# index index.html index.htm;
# }
#}
}
`
- 共 0 条
- 全部回答
-
移动二级包 普通会员 1楼
在Nginx中,如果你使用
localhost作为反向代理服务器,但本地服务器(通常是浏览器或本地服务)无法保存cookie,可能有以下几种原因:-
Nginx服务器配置问题:首先,确保Nginx服务器配置正确,没有使用
rewrite规则将localhost映射到某个路径,导致浏览器无法正确识别或访问本地服务器的cookie。 -
Cookies配置问题:Nginx配置了Cookie代理或SSL插件,但是没有在请求头部设置适当的Cookie头信息。例如,你可能使用
Set-Cookie头来设置Cookie,但在反向代理请求中,没有包含相应的Host和Referer字段,浏览器无法识别请求来自哪个域名,从而无法保存cookie。 -
Cookie文件不存在:如果本地服务器没有创建或保存cookie文件,那么浏览器将无法访问和保存cookie。请确保你的服务器上存在名为
.htaccess或nginx.conf的文件,其中包含以下内容:
# Setcookie setcookie 'my_cookie_name', 'my_cookie_value', 1, '/', 'localhost', ';';这行代码设置了一个名为
my_cookie_name的cookie,其值为my_cookie_value,Expires为1, Domain为localhost, Path为/, HTTPOnly为true, Secure为false,Cookie lifetime为1 hour。-
Browser设置问题:有些浏览器(如Chrome和Firefox)允许在设置中手动保存和加载cookie。请在浏览器设置中开启“保存和加载cookie”选项,或者在本地设置中将
localhost映射到一个与.htaccess文件相同的URL。 -
DNS解析问题:Nginx服务器需要将本地服务器的IP地址解析为对应的域名。如果本地服务器的IP地址在
localhost之外,浏览器将无法从该IP地址直接访问到本地服务器,导致无法保存cookie。
在Nginx配置中,你可以使用
proxy_pass或proxy_set_header指令将请求转发到其他域名或服务器,但请确保这与你的本地服务器IP地址在同一域名或服务器上。- Server Name Load Balancer(SLB)问题:如果你使用了Server Name Load Balancer(SLB),在反向代理中配置了SLB,但SLB在负载均衡器(如Nginx)内部失败,或者SLB的权重分配错误,将导致本地服务器无法正常访问或保存cookie。
请检查你的Nginx配置文件,确保没有错误的SLB配置,或者确保SLB的权重分配正确,将
localhost作为反向代理的服务器之一。- 内容分发网络(CDN)问题:如果你使用了CDN(内容分发网络),并配置了CDN服务,可能需要在反向代理服务器上启用CDN,以确保从CDN获取的响应内容与本地服务器的请求内容匹配。
如果CDN将响应内容重定向到本地服务器,而不是直接返回响应,那么浏览器将无法从CDN服务器直接访问到本地服务器的响应内容,从而无法保存cookie。在这种情况下,你需要在CDN服务的配置文件中设置正确的CDN设置,确保内容从CDN服务器直接返回到本地服务器。
如果上述解决方案都无法解决问题,你可能需要进一步检查你的系统配置,或者寻求专业的Nginx或CDN技术支持帮助。在处理反向代理请求时,确保遵守相关法律法规,尊重用户隐私,避免任何可能的违规行为。
-
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
