V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
abelyao
V2EX  ›  问与答

阿里云 ACE 上运行多个不同域名的网站 什么方法比较优雅?

  •  1
     
  •   abelyao · 2015-12-26 02:34:22 +08:00 · 3035 次点击
    这是一个创建于 3247 天前的主题,其中的信息可能已经有所发展或是发生改变。

    前提:
    - 手里有几个网站需要备案,日常访问量几乎是 0 的那种;
    - 阿里云 ACE 最低配置一年才 200 元,赠送 5 个备案服务号,就是可备案 5 个网站咯;

    问题:
    - 不同域名需要访问到不同的内容,有点类似 vhost 的意思;
    - 应用语言选择 PHP 的话用 app.yamlrewrite 各种不成功…
    - 因为几个网站都非常简单,可以不限于 PHP,如果 node.js 或者 python 有其它方法也可以;

    目前:
    - 现在的方法是所有请求先进入 domains.php 再根据 $_SERVER['HTTP_HOST'] 来执行不同文件;

    显然目前的方式有许多弊端,想看看大家有没有其它更优雅的方法呢?

    PS. 如果走 node.js 的话,目前 ACE 上 node.js 的版本是 0.10.30 哦!

    27 条回复    2015-12-27 09:23:22 +08:00
    rming
        1
    rming  
       2015-12-26 02:39:49 +08:00
    LNMP 一键包, nginx 配置多个站,不难吧
    或者用 nginx 的 rewrite 来做
    或者楼主用的方式,用程序做

    借问 ACE 什么配置 200 多?
    abelyao
        2
    abelyao  
    OP
       2015-12-26 02:45:32 +08:00 via iPhone
    @rming
    说的是 ACE 不是 ECS 啊…
    如果 ACE 不能解决多网站的问题我就要买 ECS 了…
    rming
        3
    rming  
       2015-12-26 02:55:33 +08:00
    @abelyao 哦,落后了,没用过呢,之前用过类似的 SAE ,这样的话你提到的方式应该是比较优雅的, yaml 写 rewrite 写不好,或者有局限性的话,应该会跳坑吧,其实不如说去买个 ECS ,低配才 600
    abelyao
        4
    abelyao  
    OP
       2015-12-26 03:01:45 +08:00 via iPhone
    @rming

    感觉 ACE 的 rewrite 比 SAE 弱太多了… 我也一直有用 SAE ,虽然不是特别完善,但在 SAE 的配置文件中基本可以达到我说的效果了,不需要 PHP 再判断。

    主要是我不善于服务器管理,尤其是安全方面,才考虑 ACE ,不然直接买 ECS 要自由好多… 现在最便宜的 500 不到呢…
    miao
        5
    miao  
       2015-12-26 09:25:26 +08:00 via Android
    万网虚拟主机,能绑 20 域名
    markmx
        6
    markmx  
       2015-12-26 10:51:45 +08:00
    双 12 买了一个 WEB 弹性.


    .htaccess

    RewriteEngine on
    RewriteCond %{HTTPS} !=on
    RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
    RewriteRule ^ http://%1%{REQUEST_URI} [R=301,L]



    RewriteCond %{HTTP_HOST} ^(.*)uh5.cn$ [NC]
    RewriteCond %{REQUEST_URI} !^/uh5.cn/
    RewriteRule ^(.*)$ uh5.cn/$1?Rewrite [L,QSA]

    RewriteCond %{HTTP_HOST} ^(.*)soapp.cn$ [NC]
    RewriteCond %{REQUEST_URI} !^/soapp.cn/
    RewriteRule ^(.*)$ soapp.cn/$1?Rewrite [L,QSA]

    RewriteCond %{HTTP_HOST} ^(.*)soapi.cn$ [NC]
    RewriteCond %{REQUEST_URI} !^/soapi.cn/
    RewriteRule ^(.*)$ soapi.cn/$1?Rewrite [L,QSA]


    RewriteCond %{HTTP_HOST} ^(.*)asktracks.com$ [NC]
    RewriteCond %{REQUEST_URI} !^/asktracks.com/
    RewriteRule ^(.*)$ asktracks.com/$1?Rewrite [L,QSA]

    RewriteCond %{HTTP_HOST} ^(.*)wangshisan.com$ [NC]
    RewriteCond %{REQUEST_URI} !^/wangshisan.com/
    RewriteRule ^(.*)$ wangshisan.com/$1?Rewrite [L,QSA]

    RewriteCond %{HTTP_HOST} ^(.*)bengmei.com$ [NC]
    RewriteCond %{REQUEST_URI} !^/bengmei.com/
    RewriteRule ^(.*)$ bengmei.com/$1?Rewrite [L,QSA]
    abelyao
        7
    abelyao  
    OP
       2015-12-26 11:14:56 +08:00 via iPhone
    @miao 但只能备案一个网站
    abelyao
        8
    abelyao  
    OP
       2015-12-26 11:15:47 +08:00 via iPhone
    @markmx WEB 弹性可以有多个备案服务号?
    markmx
        9
    markmx  
       2015-12-26 11:19:39 +08:00
    @abelyao 可以 我反正申请了 3 个 一次备案了三个.
    abelyao
        10
    abelyao  
    OP
       2015-12-26 11:31:56 +08:00 via iPhone
    @markmx 看来是跟 ACE / ECS 一样可以申请 5 个备案 SN 号,太爽了
    9hills
        11
    9hills  
       2015-12-26 11:35:18 +08:00 via iPhone
    Nginx
    abelyao
        12
    abelyao  
    OP
       2015-12-26 12:11:58 +08:00 via iPhone
    @9hills 说的是 ACE 谢谢
    miao
        13
    miao  
       2015-12-26 12:51:23 +08:00
    @abelyao 阿里云虚拟主机可以备案 N 个域名.亲测
    miao
        14
    miao  
       2015-12-26 12:52:22 +08:00
    N 个域名 都填一样的主机账号和密码.
    @abelyao
    abelyao
        15
    abelyao  
    OP
       2015-12-26 13:30:40 +08:00
    @miao N 个域名只能是同一个备案主体吧?我是有 3 个不同的备案主体,好像需要 3 个备案服务号
    miao
        16
    miao  
       2015-12-26 13:33:27 +08:00
    @abelyao 你试试喽
    just1
        17
    just1  
       2015-12-26 13:33:33 +08:00 via Android
    @abelyao 免费的那个好像也有备案号
    abelyao
        18
    abelyao  
    OP
       2015-12-26 15:10:30 +08:00
    @markmx
    @miao
    @just1

    刚刚跟阿里云了解过到:
    - 虚拟主机(包括免费的)支持 1 个备案服务号,也就是 1 个备案主体;
    - 弹性 Web / ACE / ECS 都支持 5 个备案服务号,也就是最多可以 5 个主体 5 个网站;
    - ACE 的支持上传 SSL 证书, ECS 更不用说了,而弹性 Web 和虚拟主机都是不支持的;
    miao
        19
    miao  
       2015-12-26 17:05:00 +08:00
    @abelyao 阿里云虚拟主机可以备案 N 个域名.亲测
    我的还是免费的. 没有备案服务号, 进 http://beian.gein.cn/ 增加网址 选择 万网虚拟主机,
    不同域名填入一样的主机名 和密码

    亲测 亲测 亲测 亲测 亲测 亲测 亲测 亲测 亲测 亲测 亲测 亲测 亲测 亲测 亲测 亲测 亲测

    不要和我争. 我都刚备案了 10 多个域名.

    不清楚支持不支持 SSL
    markmx
        20
    markmx  
       2015-12-26 17:07:48 +08:00
    @abelyao
    支持不支持 SSL 不清楚. 只是想要备案 . 价格便宜 服务好.我看就剩下这个了.
    abelyao
        21
    abelyao  
    OP
       2015-12-26 18:08:33 +08:00
    @miao 晕,我知道可以备案多个域名,我在阿里云也有万网的虚拟主机,但只能属于同一个主体的(同个公司的不同网站、或者同一个人的不同网站)。没要和你争不能备案多个域名好吧
    VmuTargh
        22
    VmuTargh  
       2015-12-26 18:11:21 +08:00
    nginx+h2o 的解决方案。 h2o 做前端解决 http2
    abelyao
        23
    abelyao  
    OP
       2015-12-26 18:14:48 +08:00
    @VmuTargh 哥… ACE 不是 ECS ,只是应用容器,不是 VPS 那种…
    如果能上 nginx 哪怕 apache 的 htaccess 都有能轻松解决问题,但 ACE 只支持 yaml 啊
    plqws
        24
    plqws  
       2015-12-26 18:35:36 +08:00   ❤️ 1
    如果用 Node.js 的话,实现虚拟主机和 SSL 我都做过:
    https://github.com/wspl/Ivory

    可以参考一下
    abelyao
        25
    abelyao  
    OP
       2015-12-26 18:40:30 +08:00
    @plqws 终于有个针对问题的答案了,谢谢,我了解一下
    abelyao
        26
    abelyao  
    OP
       2015-12-26 18:42:26 +08:00
    @plqws 看到主页上写 😂(Deprecated: Bad performance)
    plqws
        27
    plqws  
       2015-12-27 09:23:22 +08:00
    @abelyao 嘛,那是我反代部分的代码效率太低了,虚拟主机和 SSL 实现部分个人觉得还是实现地蛮好的,另外主要的实现代码在 old_version 里忘了说明一下了。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5491 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 08:57 · PVG 16:57 · LAX 00:57 · JFK 03:57
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.