下面的例子是如何在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的内容了。
Welcome to nginx! If you see this page, the nginx web server is successfully installed and working. 欢迎登录nginx服务器。如果你看到这个页面,该服务器就已成功安装并运行:用户从浏览器输入URL。先到nginx。nginx将请求转到Passenger启动的Rails实例端口。然后你的Rails工程就收到这个请求了。 bundle只是一个Rails包管理工具。只和开发过程有关,和部署过程没关系。.欢迎分享,转载请注明来源:夏雨云
评论列表(0条)