设置之后domain为 .localhost 多了一个点
导致cookie还是设置失败
参考:
Nginx防止cookie丢失的配置 <nginx proxy_pass><proxy_cookie_domain>
nginx配置proxy_cookie_domain如何去掉.localhost的点?
mac nginx 启动
server{listen 80
add_header Set-Cookie 'CookieName=CookieValue'
}
简单的添加一个setcookie头就可以创建一个cookie,在当前请求的路径下创建了一个名为cookieName,值为CookieValue的cookie,为内存cookie,若要在其他位置创建,只需要加上path,改变生存期可以加expire
nginx配置sso登录
下面的例子是如何在nginx配置sso登录服务。
用到几个主要元素:应用服务器(myweb),ngingx服务器,和认证服务器(mycas)。
为了验证的简化,所有的服务器都搭建在一台主机上(假设当前机器名为host.example.com),主机名即域名,三个服务通过三个不同的端口提供服务。
我们使用node/express来模拟应用服务器和CAS认证服务器。
参考官方文档,不细说。
https://nodejs.org/en/
我们用它来生产node项目框架。
修改认证服务器端口为4000
4.2. 创建认证服务器
保持认证服务器端口为3000
为认证服务器添加一个登录页面:
启动认证服务器
启动应用服务器
启动nginx
nginx的错误日志在:/var/log/nginx/error.log
另外如果碰到如下错误:
(13: Permission denied) while connecting to upstream:[nginx]
请参考下面链接:
https://stackoverflow.com/questions/23948527/13-permission-denied-while-connecting-to-upstreamnginx
登录
http://host.example.com
浏览器会跳转到登录页面, http://host.example.com:3000/login ,输入用户名密码(admin/admin)后,跳转到应用服务器页面,显示"Welcome Page!"
退出
http://host.example.com/logout
退出后,页面重新跳转到登录页面。
11.1 设置request.Headers
在认证服务器,认证成功时:
然后下nginx的配置文件里:
从认证服务器的upstream获取x_forwarded_user和x_idcs_user,注意用小写,然后设置到应用服务器的request里面去。
11.2 设置浏览器cookie
在认证服务器的post/login成功时:
这样浏览器就能看到cookie的内容了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)