`
truemylife
  • 浏览: 228420 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

多域名资源调用及限制

阅读更多

背景和应用场景:

       当前团队运营多个网站,比如有两个网站www.t1.com、www.t2.com。技术团队同时掌控了t1、t2的资源,理论上t2可以使用t1页面级的资源,这样有利于业务解耦和集中维护。但页面级的资源存在跨域安全问题,关于跨域问题可见前文http://truemylife.iteye.com/admin/blogs/1454300。这里由于t1与t2并非主次域名,因此若按前文,将无法实现跨域调用。这种情况下,要实现资源调用,没有条件只能创造条件,好让t1,t2实现同源,也就是实现同域名,这样就绕过了此问题。

 

Nginx配置:

配置www.t1.com片段

 server {

        listen 80;

        server_name www.t1.com;

       server_name_in_redirect off;

      gzip  on;

      gzip_vary on;

      gzip_proxied any;

      gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;

      gzip_buffers 16 8k;

        location / {

        proxy_pass http://192.168.90.111:8080;

        proxy_redirect          http://wwwt1.com/ /;

        proxy_set_header        Host            $host;

        proxy_set_header        X-Real-IP       $remote_addr;

        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;

        client_max_body_size    10m;

        client_body_buffer_size 128k;

        proxy_connect_timeout   90;

        proxy_send_timeout      90;

        proxy_read_timeout      90;

        proxy_buffers           4 32k;

        }

    }

再新增一个供www.t2.com调用的同源域名t1.t2.com

server {

        listen 80;

        server_name t1.t2.com;

       server_name_in_redirect off;

      gzip  on;

      gzip_vary on;

      gzip_proxied any;

      gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;

      gzip_buffers 16 8k;

        location / {

        proxy_pass http://192.168.90.111:8080;

        proxy_redirect          http://t1.t2.com/ /;

        proxy_set_header        Host            $host;

        proxy_set_header        X-Real-IP       $remote_addr;

        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;

        client_max_body_size    10m;

        client_body_buffer_size 128k;

        proxy_connect_timeout   90;

        proxy_send_timeout      90;

        proxy_read_timeout      90;

        proxy_buffers           4 32k;

        }

       if ($request_uri !~* "/(s|billstudy)/(.*)") {

         rewrite  ^(.*)$  http://www.t1.com  break;

      }

    }

这样,www.t1.com与t1.t2.com实际上指向相同的应用,t1.t2.com存在的意义就是供www.t2.com调用页面资源,因为www.t2.com与t1.t2.com是主次域名关系,主次域名跨域方案就简单了,参考前文。

对于t1.t2.com这个访问域名,我们并不想对外公开,因此做了访问的限制,看t1.t2.com的配置里这句:

if ($request_uri !~* "/(s|billstudy)/(.*)") {

         rewrite  ^(.*)$  http://www.t1.com  break;

}

除了公开/s/与/billstudy/这个访问路径外对www.t2.com公开外,其他通过t1.t2.com访问,都会被重定向www.t1.com。这样有利于资源权限的控制。还可以加上防盗链的配置。

Nginx有大量的正则表达式应用,参考http://www.howtocn.org/nginx:pcre

Nginx rewrite样例 http://blog.csdn.net/cnbird2008/article/details/4409620

另外在修改nginx.conf时,一定要注意空格,比如if($request_uri !~* "/(s|billstudy)/(.*)")是不符合书写格式的,就无法启动nginx,if后面一定要留空格。

 

javascript支持跨域

通过iframe实现跨域调用资源时,需要主次页面都置

<script>document.domain="t1.com";</script>

但如果想资源被多个域名调用,此时定死指定t1.com就出错了,需要动态扩展, 

<script>
if(location.href.indexOf("t2.com")>0){
   document.domain="t2.com";
}else{
   document.domain="t1.com";
}
</script>

 这样资源就能同时被t1.com、t2.com调用了,当然访问资源的时候需要使用不同的域名,比如t1.com要调用t1.com的资源,使用http://www.t1.com/xxx.html; t2.com要调用xxx.html时,必须使用http://t1.t2.com/xxx.html。按以上配置和代码扩展,可以进一步扩展出更多的不同域名之间的页面级资源调用。

 

分享到:
评论

相关推荐

    跨域请求资源-jsonp和cors区别.pdf

    那什么是跨域呢,简单地理解就是因为JavaScript同源策略的限制,a.com域名下的js无法操作b.com或是c.a.com域名下的对象。 当协议、子域名、主域名、端口号中任意一个不相同时,都算作不同域。不同域之间相互请求资源...

    淘帝淘宝客API网站源码【整合文章系统】

    本程序为淘帝淘宝客API网站源码【整合文章系统】,增加了以下新功能。 1:整合的文章系统采用Access数据库,虚拟主机空间不需要数据库支持即可使用,文章支持伪静态设置。...本源码为破解版,不受域名限制。

    C++网络爬虫项目

    管理器、统一资源定位符队列、域名解析线程等在内的多个底层设施,提供诸 如初始化、执行多路输入输出循环、启动抓取任务等外部接口。 2.3.5. 主线程(main) 主函数,处理命令行参数,初始化应用程序对象,进入多路I/...

    ErphpdownV11.7会员推广下载_付费下载资源_付费查看内容 WordPress插件.zip

    本插件无域名限制。 基本功能: 已经在程序中集成官方支付宝(PC电脑端支付即时到帐、唤醒APP支付:H5支付、当面付(个人可申请))接口、PAYPAL、官方微信支付(PC扫码支付、唤醒APP支付:H5支付、公众号支付)、...

    最新多多返利网源码7.4升级到10月12日

    多多淘宝客V7.4版,程序升级到10月12日(安装后就是最新10.12日,全能版永久版(绝非网上下载的用一段时间还要交钱授权的),后台可自由更改appkey和旺旺号,不限制域名,该有的功能都有,程序无加密文件,可更改底部...

    同城多用户商城(生成html无限版) 商城网站源码

    同城o2o(线上/线下)多用户商城v5.6.0版本,本系统取消所有功能限制。增加地区导航、开通分站功能。前、后台功能无任何限制。适用于同城或地区商家联盟商业门户网站。免费版也可以应用于商业用途。适合于草根打造创业...

    WinXP总管

    隐藏或限制访问驱动器,限制指定的应用程序运行,在资源管理中 伪装文件夹,改变系统文件夹的位置;删除很多组件的历史记录以防止别人查看。 6.网络设置 提高您的Internet连接速度,轻松地使用信使服务与别的...

    WinXP 总管

    隐藏或限制访问驱动器,限制指定的应用程序运行,在资源管理中 伪装文件夹,改变系统文件夹的位置;删除很多组件的历史记录以防止别人查看。 6.网络设置 提高您的Internet连接速度,轻松地使用信使服务与别的计算机...

    桃源网络硬盘.Net v5.5.rar

    文件转发功能,可将多个文件下载地址通过邮件或短信发送给他人下载,并可限制下载次数及天数。 13.在线编辑文本文件、播放任何影音文件、查看图片内容、对共享文件及目录添加文字注释功能。 14.在线编辑Word,Excel...

    小旋风蜘蛛池站群X8.5最新无限制版站群系统源码

    增加自定义附加域名后缀(已自带 2 百多个常见后缀,为防止某些错误) 增加修复文件索引缓存文件 增加后台保持登录不掉线 增加手动触发自动采集/推送(可加入宝塔任务计划触发) 因熊掌号下线,更换为百度《快速...

    蚂蚁5.1破解

    (16)多城市版本:支持多城市间自由切换,不同城市可采用独立二级域名,系统根据浏览者IP自动跳转所在城市,分站有独立的广告管理,每个分站可设置独立管理员,分站拥有独立的SEO优化设置可设置不同的关键词描述 ...

    桃源网络硬盘.Net v5.8.zip

    12.文件转发功能,可将多个文件下载地址通过邮件或短信发送给他人下载,并可限制下载次数及天数。 13.在线编辑文本文件、播放任何影音文件、查看图片内容、对共享文件及目录添加文字注释功能。 14.在线编辑Word,...

    最新淘宝客多多返利7.4版程序破解版免证书安装

    程序升级到6月08日带淘宝打折版最新补丁(安装后就是最新6.08日带淘宝打折版,也可打08日的升级补丁文件,全能版永久版(绝非网上下载的用一段时间还要交钱授权的),后台可自由更改appkey和旺旺号,不限制域名,该有的...

    多功能点评系统网站源码 v2.6 GBK.zip

    较少系统数据库资源消耗 支持本地和JS方式调用数据 插件功能 利用插件接口可丰富系统功能 集成提供多个插件(图片轮换,网站公告) 系统整合 万能整合API,可与任何PHP程序进行整合 整合UCenter(账户,短信,好友,...

    GXML专题文章管理系统 v1.0

    模板系统和之前Gblog的模板系统类似,不过刚开始,没有加入太多标签 所需服务器环境:服务器:windowsXP/windows 2003 server/2008 serverWeb服务器:iis 5/6/7需要站点目录给予GXML及文章生成目录的读写权限,虚拟...

    最新7.4多多返利网源码 升级到9月4日

    多多淘宝客V7.4版,程序升级到9月04日带淘宝打折版最新补丁(安装后就是最新9.04日带淘宝打折版,全能版永久版(绝非网上下载的用一段时间还要交钱授权的),后台可自由更改appkey和旺旺号,不限制域名,该有的功能都有...

    TCP/IP详解

    6.6 选择一个域名服务器 52 6.7 名字服务解析过程 52 6.7.1 递归查询 52 6.7.2 叠代查询 52 6.8 高速缓存 52 6.9 反向解析(Pointer)查询 52 6.10 DNS安全 52 6.11 资源记录 53 6.12 小结 54 第7章 WINS 55 7.1 ...

    优拓(uudev)原版智能建站系统V1.5

    系统拥有会员管理系统、文章管理系统、软件下载系统、游戏下载系统、图片下载系统、论坛系统、开放平台系统等诸多实用功能,并由核心的UBB调用系统有机串联为一体。UBB系统仅需简单的鼠标拖拽,就可以轻松实现网站的...

    IT学习者智能自助友情链接系统 1.6.rar

    3.当申请链接的网站平均每天点进次数大于指定的数额(可在config.asp中设置)后,才会在页面(link.asp和调用js.asp的页面)上显示。超过设定的行数后,会出现“更多链接”的字样,指向friendlink.asp页。 4.管理员和...

    IDCWebAngel (1.0.1.0) 超级IIS防火墙

    独有的多模式防盗链系统、让站长不必担忧资源被其它网站盗用,独有的在线管理自己网站的伪静态规则,并可以自动将“ISAPI_Rewrite”、 “URLRewrite”等规则自动转换到“网站天使”的“URL重写”规则。完全支持目前...

Global site tag (gtag.js) - Google Analytics