页面树结构
转至元数据结尾
转至元数据起始
  1. 在下面这些情形下,我们会需要部署 Smartbi 的代理服务器。i)Smartbi 在集成到第三方系统时,遇到了跨域访问问题,则需要在第三方系统的应用服务器上部署 smartbi_proxy,然后通过其间接访问 Smartbi 应用。ii)把 Smartbi 部署在内网隔离环境下,但同时希望可以在外网上访问,我们就可以在外网上部署 smartbi_proxy,通过其代理访问内网的 Smartbi 应用。具体参考如下。

 

文档目录:

方案一、部署在Java应用服务器

Smartbi proxy 应用需要 jdk1.5 以上环境,支持在 WebSphere、Weblogic、JBoss、Tomcat 等应用服务器上部署。部署步骤如下:

  1. 从思迈特处获取试用版 ,用于测试体验 smartbi_proxy.war 介质。点击下载
  2. 将smartbi_proxy.war重命名为smartbi.war,这里的名称必须与smartbi真实的访问上下文路径一致

    注意:

    当被代理的链接的http端口为80或https端口为443时,配置的真实访问地址不能带上端口,应该直接填http://ip/smartbi或https://ip/smartbi


  3. 参考“如何修改WAR包”文档,打开并修改 smartbi.war\WEB-INF\web.xml 文件。修改其中 servlet 的初始化参数 url,将其设置为 Smartbi 应用访问地址。如果设置了多个地址,还可以做简单的负载均衡。如下图所示。
  4. servlet 还有另一个初始化参数 recheckTime,用来设置当某个服务器失效后,重新连接该服务器的时间间隔。设置完上述参数后,完整的 web.xml 文件内容如下。 

    <?xml version="1.0" encoding="GBK"?>
    <web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4">
    	<servlet>
    		<servlet-name>ProxyServlet</servlet-name>
    		<servlet-class>smartbi.freequery.proxy.ProxyServlet</servlet-class>
    		<init-param>
    			<!-- 声明当服务器失效后,在多少秒后才重新尝试连接此服务器 -->
    			<param-name>recheckTime</param-name>
    			<param-value>30</param-value>
    		</init-param>		
    		<init-param>
    			<param-name>url</param-name>
    			<!-- 当有多个服务器时以逗号分隔
    			<param-value>http://localhost:8081/smartbi/,http://localhost:8082/smartbi/</param-value>
    			-->
    			<param-value>http://192.168.1.26:18080/smartbi/</param-value>
    		</init-param>
    	</servlet>
    	<servlet-mapping>
    		<servlet-name>ProxyServlet</servlet-name>
    		<url-pattern>/*</url-pattern>
    	</servlet-mapping>
    	<servlet-mapping>
    		<servlet-name>ProxyServlet</servlet-name>
    		<url-pattern>*.jsp</url-pattern>
    	</servlet-mapping>
    </web-app>
  5. 然后参考“安装配置指南”中 smartbi 手工部署章节部署 重命名后的smartbi.war(注:部署代理解决跨域问题,是需要将smartbi的代理包部署到第三方系统坐在应用服务器下,即保证访问的IP、端口是跟第三方系统是一致的!
  6. 部署完成后,即可通过访问代理地址达到访问真实 smartbi 服务器的目的。例如地址:http://www.smartbi.com.cn:8080/smartbi

 

方案二、部署在IIS6

2.1 先决条件

配置连接 Smartbi proxy 前,请先确定是否已经安装了以下组件:

  • 安装Internet Information Server(IIS) 6,IIS必须允许ASP.NET访问。
  • 安装.net framework 2.0或以上版本和ASP.NET2.0或以上版本。
  • 下载Smartbi Proxy for IIS。该代理程序适用于IIS6和IIS7,但建议IIS7使用官方推荐的Application Request Routing Cache。
    直接下载:SmartbiProxy_IIS.zip

2.2 修改配置文件

用文本编辑器打开 Smartbi proxy 里面的配置文件web.config,修改其中host属性的值<add key="host" value="http://localhost:8080/smartbi/" />,该值为Smartbi应用服务器的真实访问地址。

 

2.3 建立虚拟目录smartbi

IIS上建立一个名为smartbi的虚拟目录:

  1. 在介质中找到 smartbiproxy 目录,并且将其复制到服务器任意文件夹(该文件夹不要包含空格),比如c:\ smartbiproxy。
  2. 在操作系统的“开始”菜单中选择: 控制面板 > 管理工具 > 计算机管理,弹出“计算机管理”窗口。
  3. 在“计算机管理”窗口右侧的控制台树中展开“服务和应用程序”节点,选择“Internet 信息服务”,并在“默认Web站点”节点的右键菜单中选择:新建 > 虚拟目录,弹出“虚拟目录创建向导”窗口。
  4. 单击“下一步”按钮,输入目录别名:smartbi,注意:这个名字必须与 smartbi 的访问地址中的应用名称一致,如:http://localhost:8080/smartbi中的 smartbi 即为应用名称。
  5. 输入 Web 站点的内容目录,比如C: \smartbiproxy。
  6. 设置访问权限。勾选“读取”、“运行脚本(例如ASP)”和“执行'例如ISAPI应用程序或CGI”选项。
  7. 单击“下一步”,完成全部操作。

2.4 设置虚拟目录属性

  1. 在IIS中选择已经发布的smartbi虚拟目录,右键选择"属性" 菜单。
  2. 在弹出的属性窗口中,点击"配置"按钮。
  3. 应用程序配置窗口中,点击"插入"按钮。
  4. 输入asp.net2.0中aspnet_isapi.dll地址,如:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll,并设置"确认文件是否存在"为不选中状态。
  5. 点击"确定"完成配置。
  6. 配置ASP.NET版本,点击第二步中的"ASP.NET"按钮,显示如下,并将图中所示ASP.NET版本改为2.0或以上版本。


方案三、部署在IIS7

3.1 先决条件

  • 配置代理前,请先确定安装 IIS7 的URL重写组件,请参考下图,如包含下图中红色框中的组件,则说明已正确安装。

  • 安装注意事项:
  1. 保证服务器可以连接网络
  2. 到下面地址下载安装组件http://www.iis.net/download/applicationrequestrouting

3.2 激活IIS7 proxy功能

  1. 打开 IIS7 管理器,选择 IIS7 根节点,双击右侧面板中的"Application Request Routing Cache"。
  2. 点击界面右侧的"Server Proxy Settings"。
  3. 选择"Enable proxy",并点击"应用"。


3.3 设置URL重写

  1. 打开 IIS7 管理器,选择 IIS7 根节点,双击右侧面板中的"URL重写"。
  2. 在"URL重写"界面,右键选择"添加规则",在弹出框中,选择"空白规则"。
  3. 输入规则名称"smartbiproxy",匹配URL请选择使用"通配符",模式框中输入"smartbi/*",如下图。
  4. 在"重写RUL"框中输入真实的smartbi访问地址,http://ip:port/{R:0},选择"停止处理后续规则",如下图。
  5. URL配置完成后,如果能正常访问 http://localhost/smartbi/vision/index.jsp,则表示配置成功。

 

  • 无标签