zoukankan      html  css  js  c++  java
  • 配置Apache+Tomcat实现SSO(单点登录)

    1.增加NameVirtualHost,在httpd.conf添加NameVirtualHost将其打开。
    NameVirtualHost 192.168.30.95:80

    2.尝试使用两个不同域名VirtualHost的方案,未能实现。

    PHP应用 – www.wenjuanpai.com

    Java应用 -  java.wenjuanpai.com

    因为单点登录需要使用Cookies,而该方案使用了"www"和"java"两个子域,默认的,每个域的Cookies是独立的。

    事实上,跨域Cookies共享是可行的,需要程序员额外的Code工作。

    3.尝试使用不同端口VirtualHost的方案,可以实现。

    配置如下

    NameVirtualHost 192.168.30.95:80
    NameVirtualHost 192.168.30.95:81

    <VirtualHost 192.168.30.95:80>
        DocumentRoot "D:/wamp/www/wenjuanpai"
        ServerName www.wenjuanpai.com
        <Directory "D:/wamp/www/wenjuanpai">
        allow from all
        Options +Indexes
         </Directory>
         ……
    </VirtualHost>

    <VirtualHost 192.168.30.95:81>
        ServerName www.wenjuanpai.com
        ProxyPass / ajp://localhost:8009/
        ProxyPassReverse / ajp://localhost:8009/
    </VirtualHost>

    以上方案,直观上看,和之前的采用8888端口的方案,似乎丢失一样的,但是内部机制已经改变了。

    为什么要这么做?引用某位老师的一段说明:

    既然 Tomcat 本身已经可以提供这样的服务,我们为什么还要引入 Apache 或者其他的一些专门的 HTTP 服务器呢?原因有下面几个:

    1. 提升对静态文件的处理性能

    2. 利用 Web 服务器来做负载均衡以及容错

    3. 无缝的升级应用程序

    这三点对一个 web 网站来说是非常之重要的,我们希望我们的网站不仅是速度快,而且要稳定,不能因为某个 Tomcat 宕机或者是升级程序导致用户访问不了,而能完成这几个功能的、最好的 HTTP 服务器也就只有 apache 的 http server 了,它跟 tomcat 的结合是最紧密和可靠的。

    当然,完美的方案,肯定不是“不同端口VirtualHost”的方案。只要我们的程序员够给力,能在代码中实现Cookies跨域,那才是真正的无缝整合。

  • 相关阅读:
    linux grep命令
    PHP 利用simplexml_load_file 读取XML对应的字段 然后存入mysql数据库
    php 设计模式之单类模式
    Mac C#开发工具Rider安利与环境配置教程
    模拟,贪心,枚举(二)
    模拟,贪心,枚举
    10.10 review
    review 10.9
    10.6 review
    9.28 review
  • 原文地址:https://www.cnblogs.com/shihao/p/2313163.html
Copyright © 2011-2022 走看看