...
nginx配置监听端口:80
第三方系统地址首页:http://10.10.20212.1187:180808080/SmartbiSSO
smartbi地址首页:http://10.10.202.17:18600/smartbi
第三方系统和smartbi不在同一台服务器,则如果http://10.10.20212.1187:180808080/SmartbiSSO下的页面通过iframe等方式引用http://10.10.202.17:18600/smartbi下的页面容易出现跨域问题导致不能单点登录,或者登录成功后无法正常使用报表的一些功能(比如跳转规则,客户端宏的子窗口调用父窗口的代码不能正常执行)的情况。下的页面容易出现跨域问题导致chrome浏览器中不能单点登录,或者登录成功后无法正常使用报表的一些功能(比如跳转规则,客户端宏的子窗口调用父窗口的代码不能正常执行)的情况。
配置示例
基于上述环境,以下是nginx解决跨域问题的一个参考配置:
代码块 | ||||
---|---|---|---|---|
| ||||
#user root root; worker_processes 1; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; server { listen 80; server_name localhost 10.10.101.73; #charset koi8-r; resolver 8.8.8.8; location /smartbi/ { proxy_pass http://10.10.202.17:18600/smartbi/ ; proxy_set_header Host $host:$server_port; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; client_max_body_size 100m; client_body_buffer_size 128k; proxy_connect_timeout 90; proxy_send_timeout 300; proxy_read_timeout 300; proxy_buffer_size 4k; proxy_buffers 4 32k; proxy_busy_buffers_size 64k; proxy_temp_file_write_size 64k; } location /SmartbiSSO/ { proxy_pass http://10.10.20212.1187:180808080/SmartbiSSO/ ; proxy_set_header Host $host:$server_port; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; client_max_body_size 100m; client_body_buffer_size 128k; proxy_connect_timeout 90; proxy_send_timeout 300; proxy_read_timeout 300; proxy_buffer_size 4k; proxy_buffers 4 32k; proxy_busy_buffers_size 64k; proxy_temp_file_write_size 64k; } error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } } } |
...
如果在第三方系统下有一个页面:http://10.10.101.73/SmartbiSSO/report.jsp需要引用smartbi的报表,则report.jsp引用的地址需要使用http://10.10.101.73/smartbi/vision/openresource.jsp?resid=XXXXXX这种格式,对于访问第三方系统的用户,通过http://10.10.101.73/SmartbiSSO的入口去访问第三方系统的页面引用的smartbi报表就不会存在跨域问题。SmartbiSSO的入口去访问第三方系统的页面引用的smartbi报表就不会存在跨域问题。如下图:
Viewtracker |
---|