浅谈阿里云主机映射多域名(博客域名huzd.info备案审核阶段)

/ 建站 / 3 条评论 / 3580浏览

        之前注册的promore.cn 三年已经到期了;.cn的域名比.com的域名要麻烦的多。在做域名映射时主机必须要备案;如果转向无需备案的主机比如国外主机商;还需要做一个什么责任自负类似的申请。GOD...

        不得不佩服天朝的监管措施;一个域名备案那么长时间。以下是流水账说说操蛋的经历:

        1、备案的时候会有个备案主体,因为我们身份证所在地发生了行政区域变更,结果新身份证和我之前在阿里云备案的身份证地址信息不一致;客服小妹妹要求我改正...

        2、改了身份证备案地址后提交提示我已经备案的网站需要指定语言(简体中文、繁体中文....)还是必选项;尼玛,这个之前是不用指定的,修改这个选项之前的域名备案要重新审批。SHIT.

        3、等之前的域名备案审批完成后;我才能提交huzd.info这个域名绑定备案。

        这严重影响了我更新博客的积极性;无语的是tale这个博客框架在注册的时候会让你指定域名;而且会把这个域名保存在数据库的部分表中比如图片路径之类的。现在写了博客后期我需要把sqlite数据库复制出来;然后找客户端工具打开批量替换域名。

       下面介绍一下阿里云主机如何映射多个域名;充分利用主机资源吧;

        当我们购买了一个新的阿里云主机的时,此刻你拿到的机器就是一台Linux或者Win的全新虚拟的主机;可以视为一台新电脑。所以我们可以在上面部署多个Tomcat(不同端口),也可以部署php等主要CPU、内存资源够用利润上是可以有N个的。当然阿里云不会那么傻;它最多只让你映射5个域名。

        通常模式是我们一台服务器部署一个web应用使用80端口;那么在域名映射的时候直接映射到服务器的外网地址;就搭建成一个正常的网站了。如果想要一个服务器开启多个web应用;然后不同的应用访问不同的域名这个时候就需要额外的软件来提供支持了。这里我要介绍的是Nginx-反向代理服务器;Nginx的使用不是本篇博文的谈论范围;请Google自行学习;Nginx的通常是用来做反向代理的、负载均衡(这里会有session同步的问题;后期我会写篇博文教大家来配置,并且用一个参数解决session同步的问题;这个参数可以巧妙规避session同步的问题)。大体原理是:

       假设我们有五个域名分别是:www.1.com、www.2.com、www.3.com、www.4.com、www.5.com;那么我们想五个不同的域名映射到同台服务器上五个不同的web应用。那么你需要在服务器上开启5个web服务器;并且制定不同端口。这里假设分别是:111.111.111.111:8000、111.111.111.111:8001、111.111.111.111:8002、111.111.111.111:8003、111.111.111.111:8004、111.111.111.111:8005;接下来的事情交给nginx吧;具体配置文件如下:

#这里我们配置www.1.com 到 111.111.111.111:8000的映射
server{
   listen                  80;
   server_name             1.com www.1.com;
   index                   index.html index.jsp;
   location / {
                 proxy_pass http://localhost:8000;
                 proxy_set_header Host $host;
                 proxy_set_header X-Real-IP $remote_addr;
                 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
              }
}
#这里我们配置www.2.com 到 111.111.111.111:8001的映射
server{
   listen                  80;
   server_name             2.com www.2.com;
   index                   index.html index.jsp;
   location / {
                 proxy_pass http://localhost:8001;
                 proxy_set_header Host $host;
                 proxy_set_header X-Real-IP $remote_addr;
                 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
              }
}
其他的三台以此类推
上面的这些代码可以直接复制到nginx的.conf文件中;然后保存使用。

     看上去是不是非常简单?对,就是这么简单。Nginx会根据Server的配置来监听服务器的访问;因为浏览器地址栏我们会直接输入域名;所以使用的是默认端口80;所以我们每个Server的配置都是监听80端口;然后Nginx会根据你请求的域名来找对应的Server片段;定位到Server段后会把请求直接映射到你本机的对应端口上。Nginx的强大远远不止于此;希望感兴趣的童鞋去学习一下;非常值得学习!在大型的高并发的应用中几乎都会出现它的身影;例如:动静分离、负载均衡 等等。


  1. 屌一逼 这年头还坚持在技术一线的不多了

    回复
  2. 学长好屌。

    回复
    1. @孙

      一切都是皮毛。过奖了。

      回复