在Windows Azure中使用自己的域名

       请参考:http://blog.smarx.com/posts/custom-domain-names-in-windows-azure

       本文是对这篇文章部分解释和补充。

       并请记住,此博客总是能给你在Windows Azure的开发中带来帮助。

 

域名解析机制浅析

       域名解析,本是个很简单的事情:我们如若想将我们的域名指向某个网站提供的二级域名,只要设置cname记录;如果我们知道服务器的ip,直接设置A记录即可。在Azure的使用中,却总是有些人有点疑惑。

 

       这里我们首先要弄清楚DNS解析域名的过程,记住,只要是通过域名解析设置的(不是通过页面重定向技术实现的),不管中间经历多少域名的转换,从用户在浏览其中输入域名地址,DNS返回给浏览器的一定是最终服务器的IP地址,中间所有域名解析对于浏览器来说不可见。

       事实上,请求者不需要知道这些细节,DNS的作用在于你给我一个域名,我尽其所能找到这台服务器的IP地址。因为,互联网本是基于IP的,但是为了好记忆才添加了一个DNS应用层,在用户看来,一个域名始终指向一个IP,一个IP可能被多个域名指向。

       并且对于开发者而言,除了重定向外,通过DNS发过来的请求,其HTTP请求的Host部分,一定是最初用户输入的地址,不管中间经历什么其他的域名。

       所以,这样提示我们开发者,应该根据Host来区分用户输入的域名地址,以及做相关的导航控制,不应该依赖于某个绝对路径。

 

几种均衡负载方式

       Azure的域名解析问题可能主要来自多个Instance,每个instance是一个虚拟服务器,那这样IP地址怎么确定?

       这里我们首先来分析,均衡负载有几种方式,可以参阅《构建高性能网站》,最简单的莫过于重定向,但是这样会改变浏览器中用户输入的域名,可能给里面的内容导航带来混乱;其次可以通过DNS来设置,可以为一个域名配置几个IP,这样DNS可以根据一定的算法分配到不同的IP地址;第三种方法是通过硬件来实现,市场上也有许多相关的产品,其实思路很简单,由交换机内部实现将处理分配至不同的内部服务器或者应用程序,这样每个内部服务器不需要分配固定IP,这样的方式,服务对外而言,始终拥有固定的IP。

 

Hosted Service的IP实验

       注意,本部分是根据笔者实验推断,有部分可能不是真实情况,仅仅作为参考!

       Windows Azure的均衡负载通过硬件来实现,所有请求和虚拟服务器都由Fabric集中管理,所以每一个Hosted Service,不管里面真正的应用程序或者数据存储在那个虚拟服务器或者有多少个instance来均衡负载,每一个Role对外都只有一个IP,并且Azure为每一个处于Production状态的Role提供一个二级域名,如:http://egyee.cloudapp.net。

       但是注意这里的IP,不是固定IP,因为一个Role重新部署之后会分配不同的IP,所以应该绑定其提供的二级域名,而不应该对其IP有任何打算。很简答,Azure不认识任何Role,每一次部署都会分配IP,不可能帮你记住某个Role上一次分配的IP,看下面截图:

001

       由上图可知,我在同一个Hosted Service中两次部署同一Role,得到的IP分别是:111.221.92.83和111.221.92.89。虽然两者都对应二级域名http://egy.cloudapp.net,但是两次部署却分配两个不同的IP。

       Windows Azure保留IP的分配权,及同一Hosted Service会分配不同的IP地址,所以,其在上提供了一个二级域名,使用户在使用的时候,针对同一个Hosted Service有相同的访问路径,因此,在Windows Azure中,我们只能相信二级域名,而不能依赖IP地址。

       Windows Azure保留动态的域名还使得应用程序存放和执行位置的更改变得容易,比如,你指定应用程序只在亚洲的数据中心执行,那么IP地址是分配到亚洲某个数据中心的某个交换机,如果你改为在北美洲,那么IP地址则会分配到北美数据中心的IP地址之一。通过这样来使得应用程序执行场所以及数据存放地点离用户最近,以减少网络传输延迟。

       值得注意的是,减少网络传输延迟有几种方式,如缓存,CDN,以及将服务器处理靠近用户,这些都是云计算带给开发者的好处,我们自己架设服务器不可能得到这些好处。

       同时另外值得注意的是,在一个Role部署之后,如果不做任何修改,比如地点等,IP地址理论上不会发生改变,不过未经验证,总之我们不应该关注IP。

       域名解析的配置方法也很简单,只需要在域名管理里增加一个CNAME记录即可。

 

在多服务器负载情况下的开发注意事项

       如果,应用程序可能被不同的域名指向,那么我们的应用程序不应该依赖于任何绝对路径,包括导航。如果你想要在某个导航写上全路径,则Host部分应该取自HTTP请求的Host,而不是自己假设的某个域名,事实上,我们应该始终这样做,不管应用程序被什么域名解析,始终保证不会出现问题。

       相反,利用页面重定向的方式实现的均衡负载,前面已经分析,实际上应用程序接收到的Host并不代表用户输入的域名,所以这种情况下,可能会导致某些混乱的情况。

       事实上,重定向是服务器向浏览器返回一个3XX的响应代码,根据HTTP协议规则,浏览器应该向新的URI地址发送请求,本来这不会打乱我们上面的原则,但问题是,页面重定向针对Uri设置,所以不能保证一个域名下的所有Uri都被正确重定向,结果导致一个域名下的各个资源路径可能不在同一个域中。而域名的解析式针对一个域名,它能保证所以Uri都处于同一个域。

       总之,要小心使用重定向,重定向的页面中可能包含一些相对路径,从而使得这些路径对于原来的请求路径处于不同的域中。

       云计算中的数据一般不会存储在本地服务器内,都是通过比如REST的方式读取和修改数据,因此是不依赖于任何服务器的。

       在架设分布式服务或者网站或者存储的时候,这些情况都是必须考虑的,一定要准备好相关的方案!

 

总结:

       像我之前的一些文章一样,我不对文章内容负责,因为我写的东西一般都是基于自己思考,不会随便去抄一个MSDN或者什么之类。这样由于笔者水平有限,可能导致某些思想错误,因此,这里的东西都是只能作为理解过程中的参考,千万不能当真!

转载于:https://www.cnblogs.com/hielvis/archive/2010/11/22/1884699.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/435346.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LSGO软件技术团队2015~2016学年第十五周(1207~1213)总结

团队简述: LSGO软件技术团队成立于2010年10月,主要从事的应用方向为互联网与移动互联网(UI设计,前端开发,后台开发),地理信息系统;研究方向为大数据处理与机器学习。成立几年来为学校…

Tomca安装

下载 官网: http://tomcat.apache.org/ 2.安装 默认 3.安装成功

知其所以然(续)

查了一下,上篇知其所以然(以学习算法为例) 是08年7月写的,现在已经是10年11月,过去了两年零4个月,这说明了三件事情:1,一个问题其实你可以一直放在脑子里面,利用暗时间 对…

geoserver安装(war安装+exe安装)

下载 官网:http://geoserver.org/ 方法一 当前只有war版本的 下载结果 tomcat安装最好不要使用exe版本的,因为会出现问题,页面加载不出来,所以大家只需要下载下来解压即可 然后将geoserver安装包中的war文件放到webappx下 然后…

LSGO软件技术团队2015~2016学年第十六周(1214~1220)总结

团队简述: LSGO软件技术团队成立于2010年10月,主要从事的应用方向为互联网与移动互联网(UI设计,前端开发,后台开发),地理信息系统;研究方向为大数据处理与机器学习。成立几年来为学校…

LSGO软件技术团队2015~2016学年第十七周(1221~1227)总结

团队简述: LSGO软件技术团队成立于2010年10月,主要从事的应用方向为互联网与移动互联网(UI设计,前端开发,后台开发),地理信息系统;研究方向为大数据处理与机器学习。成立几年来为学校…

postgresql+postgis安装

下载 官网https://www.postgresql.org/ 作者的电脑为win 下载结果为 postgis要选择下载对应版本的 官网http://www.postgis.org/ 以下安装最好装到除c盘之外的,否则有些安装需要权限,一般为d盘 用户名和密码都设置为postgres postgis安装教程 之前设置过…

aop实现原理_SpringAOP原理分析

目录Spring核心知识SpringAOP原理AOP编程技术什么是AOP编程AOP底层实现原理AOP编程使用Spring核心知识Spring是一个开源框架,Spring是于2003年兴起的一个轻量级的Java开发框架,由Rod Johnson在其著作Expert One-On-One J2EE Development and Design中阐述…

MAVEN安装和配置

maven官网下载 https://maven.apache.org/download.cgi

MIPS架构的医院智能导诊系统设计

摘要:通过研究基于MIPS架构的SMP8654芯片的硬件架构,并且利用芯片内部的图形加速引擎GFX的方式实现了具有高清视频显示和图片文字处理功能的播放器。系统以嵌入式Linux和MiniGUI为平台设计了智能导诊系统,提高了医院的导诊就医的服务效率。智…

arcgis在线地图插件安装

软件下载链接 https://download.csdn.net/download/qq_39397927/15761863

hadoop namenode启动不了_集群版hadoop安装,写给大忙人看的

导语 如果之前的单机版hadoop环境安装满足不了你,集群版hadoop一定合你胃口,轻松入手。目录 集群规划前置条件配置免密登录 3.1 生成密匙 3.2 免密登录 3.3 验证免密登录集群搭建 4.1 下载并解压 4.2 配置环境变量 4.4 修改配置 4.4 分发程序 4.5 初始化…

patch文件制作

一、为单个文件打补丁1、首先我用的ubuntu12 os&#xff0c;cat >>test0<<eof但是这命令执行得是root身份more命令功能&#xff1a;让画面在显示满一页时暂停&#xff0c;此时可按空格健继续显示下一个画面&#xff0c;或按Q键停止显示。more test0:查看test0内容2…

java string逆序_java经典入门算法题,java初学者必备

java经典入门算法题开头求关注警告喜欢这样文章的可以关注我&#xff0c;我会持续更新&#xff0c;你们的关注是我更新的动力&#xff01;需要更多java学习资料的也可以私信我&#xff01;祝关注我的人都&#xff1a;身体健康&#xff0c;财源广进&#xff0c;福如东海,寿比南山…

u-boot的patch文件制作

首先明白为什么要制作patch文件&#xff0c;因为u-boot的移植过程需要根据实际需要修改通用u-boot&#xff0c;如果每次手工修改的话&#xff0c;太麻烦&#xff0c;所以用了patch文件一步到位&#xff0c;这点类似于makefile的作用&#xff0c;哈哈1.了解 diff 和 patch。diff…

postgis创建空间数据库(pgadmin4)

打开软件 看我之前的安装步骤的用户密码为postgres 点击save 查看是否具有空间数据 1.查看是否存在空间数据表 2.查看是否具有空间函数

SQL Server 2012 安装

SQL Server 2012 安装 安装包在这里&#xff1a;https://pan.baidu.com/s/1_sgxN8P-pzj7uZeAR0VlKQ 提取码&#xff1a;mnvj 文件比较大&#xff0c;慢慢下载吧 下载好后是这样的&#xff1a; 双击打开&#xff0c;点击 setup.exe 安装&#xff1a; 选择“安装”&#xff0…

矢量数据导入数据库

打开数据导入工具 设置数据库链接 用户名和密码都是postgres 链接成功 arcgis10.3之前编码是gbk之后为utf-8 目前作者用的是10.2版本导出的数据 shp文件名和路径名必须为英文 添加数据 成功导入 追加表的属性要一致 查看导入数据 查看是否导入成功 创建两个字段

@qualifier注解_常见的 Spring 注解概览

点击上方 Java后端&#xff0c;选择 设为星标优质文章&#xff0c;及时送达从Java5.0开始&#xff0c;Java开始支持注解。Spring做为Java生态中的领军框架&#xff0c;从2.5版本后也开始支持注解。相比起之前使用xml来配置Spring框架&#xff0c;使用注解提供了更多的控制Sprin…