AppFog拎包入住指南
 发布于 13 年前  作者 justfly  28058 次预览  最后一次回复是 11 年前  来自  

你也可以在我的博客阅读这片文章

AppFog是国外的一个免费应用引擎,类似于SAE、GAE和NAE。它支持Java, Python, Node, .Net, Ruby, PHP, MySQL, Mongo, PostgreSQL等平台和数据库,几乎覆盖主流web开发平台,而且免费套餐诱人,部署方便,所以吸引的不少人的目光,尤其是像我这样没钱的学生党。缺点,服务器在国外(最近的也在新加坡),延迟肯定是有的,另外,说不定某天就被长城给over掉了。

苦于没有NAE邀请码,博客暂时部署在appfog上,部署过程还算简单,这里以Linux Ubuntu+nodejs部署为例,简单介绍一下。

####Step1.注册服务。 好吧,我知道你肯定会,就当我说废话。。。

####Step2.创建一个APP 当你注册完成后,进入https://console.appfog.com/ ,点击New App,你可以看到app创建分三歩走:

第一步,选择一类应用,我们看到有三种支持的nodejs应用,nodejs,node chat node express,不管你是否使用了node express,选第一个nodejs都可以,关键是你在上传代码时加上所有你依赖的库,也就是node moudles那个文件夹放到代码跟目录即可。

第二步,选择一个服务器,随便你了,要说里你最近的就是新加坡的那个,使用的是亚马逊的云存储服务。

第三步,输入你的app子域名,也就是你给你的app起的名称。

之后,点击Create App,你会看到一个进度列表,当你看到‘done’后,你的应用就创建完毕了,简单吧。接下来,你将进入配置界面。

####Step3.App配置 一个dashboard呈现在你面前: dashboard

看上去够简单吧,介绍下,Instances顾名思义,启动实例数目,memeory quota是内存分配,你有2G的内存,你自己根据应用大小决定分配给他多少内存。调整完后记得点击一下右下角蓝色的Update!显示Done之后就修改完成了。

####Step4.创建数据服务 很大一部分的web应用还是需要数据库的,appfog提供了三种数据引擎,mongodb,postgresql,mysql。点击左侧边栏Services,选择一种数据服务,在下面输入名字,创建就好。 数据服务 注意,还没有完,你需要将创建的服务和应用绑定(Bind)才能使用,不过你稍等片刻,他会自动给你绑定上。

####Step5.修改代码并上传

修改代码重要的是你的数据库连接的代码,上面创建服务的页面有三种语言的连接实例,但是貌似打不开,nodejs可以使用下面代码:

if(process.env.VCAP_SERVICES){
var env = JSON.parse(process.env.VCAP_SERVICES);
var mongo = env['mongodb-1.8'][0]['credentials'];
}
else{
    var mongo = {
    "hostname":"localhost",
    "port":27017,
    "username":"你的用户名",
    "password":"你的密码",
    "name":"你的应用名",
    "db":"db"
    }
}
var generate_mongo_url = function(obj){
    obj.hostname = (obj.hostname || 'localhost');
    obj.port = (obj.port || 27017);
    obj.db = (obj.db || 'test');
    if(obj.username && obj.password){
        return "mongodb://" + obj.username + ":" + obj.password + "@" + obj.hostname + ":" + obj.port + "/" + obj.db;
    }
    else{
        return "mongodb://" + obj.hostname + ":" + obj.port + "/" + obj.db;
    }
}
var mongourl = generate_mongo_url(mongo);

把mongourl赋值给你的数据库连接字符串就好了。

ps:我一开始忘记设置数据库连接,仍然保持开发时候的127.0.0.1配置应用也能正常运行,奇怪,后来改过来了。

上传代码你需要ruby gem 和gem下的af。ubuntu下,

sudo apt-get install ruby1.9.1 ruby1.9.1-dev gem
gem install af
cd ‘你的应用目录’
af login(之后输入你的邮箱和密码)
af update ‘你的应用名’

等待,一连串的ok后完成,回到dashboard点击右边Visit Live Site,看看是不是已经运行了?

ps:之前的Step2可以在代码根目录用af命令:af push来实现,过程就是做几个选择题和填空题。 pps:你需要将所有的依赖库node_moudles保留在根目录,肯定有人想用package.json让服务器自己npm install,这种方法当然可以,你需要npm shrinkwrap,具体方法在这里,但不如直接上传来的直接,而且免除莫名其妙的问题。

####Step6.绑定域名 你已经有了一个appfog提供的域名,但如果你想使用自己的域名怎么办?appfog使用cname的方法绑定域名(如果你不知道cname是神马东东,google之)。具体操作:

点击做侧边栏Domain Names,在空白框内写入你的域名,update。然后去你的域名服务商那里设置解析方式cname,地址为红色的cname01开头的网址,appfog会自动根据你添加的域名进行定向,然后等待所有dns同步好你的信息,你就能访问了。

ok,6步,不出什么差错的话部署应该胜利完成了。

关于CLI控制appfog,看这里,http://docs.appfog.com/getting-started/af-cli 进阶请随时保持对文档的关注,但需要你一定的英文阅读的能力。

还有:求NAE邀请码。。。。

29 回复
italkboy

顶LZ了,这个托管引擎做得蛮人性化的,不过国外的云服务访问速度终究是硬伤呐

atian25

前几个刚注册了。 话说,nae不稳定。。

jackzhizu

这个很不错的样子。就是数据库太小了。每个限制100M

cony138

只要一登陆就500enter image description here

xieren58

试过,这个其实比NAE还不稳定~~

atian25

NAE不知道是否我RP问题… 至今未能稳定部署一个应用… 只有很早前的一个应用. 后续上传的都报什么make dir.

ps: NAE能否用express3和Socket.io?

justfly

这个嘛,我就遇到过一次,而且刷新几下就好了

jin52yang

国内都需要备案,国外速度又有点问题,还随时有可能被墙

justfly

真的吗,如此这般更加坚定我转移到nae的决心。继续求码

jaicc

您好,我在windows 下用af ,会出错enter image description here

请问下af 这里的操作是如何的,我要如何将我的代码弄上appfog呢

tntdoctor

国内链接不上啊,难道又被伟大的GFW给封啦?

papaivan

因为工作的原因好久没来了,这个绝对要顶的。

gxmari007

收藏了
正好需要这个测试

hjqdengwei

这个不能用socket.io啊

gyrate

很不错,appfog给新手做部署练习

baiezone

怎么上传没看懂

czxbin

遇到个问题,请教下

我用的是express来开发,本地开发的时候一切正常。
当登陆admin后进行的一系列操作都要先验证session,如果session失效会跳转到login
本地开发是一切正常,session可以用,当我配置到appfog后发现很经常出现session无效的情况
就连登陆也经常无法登陆,一般点几次才能登陆,登陆后进行操作又会跳回login页。又看不到控制台的信息,纠结ing啊~~~~

a272121742

这个确实很不错,基于cf,但是有很多人性化的操作和设置,比较喜欢,而且绑定域名比cf简单,哈哈顶

chendahui007

顺道问个问题: 如果我想使用原来的mongodb数据呢? 需要怎么处理?

javanode

我只能告诉你,多尝试几次吧! 我的windows 8下面会报一个编码错误, 现在在家都是在虚拟机中的win7 update的, 这个确实有时候喜欢抽风的乱报错!

nomospace

试试用一个 instance 跑,而不是多个

freemem

免费版已经不支持自定义域名绑定了,悲催。

yaochun

挂代理,速度还是可以的

duyinghua

appfog确实很不错 帖子很棒!!

airyland

。。。。挖坟帖。。

zhangran

mark 正好需要,拜谢了

zhangran

照着做了下,轻松搞定~

jamielhf

那个appfog现在只有1个月的免费试用是吧?