前言
ZEIT:Our Mission,Make Cloud Computing as Easy and Accessible as Mobile computing.
ZEIT是美国 (域名Ip指向美国华盛顿州西雅图市)
一家提供云部署服务的公司,旗下的 Now.sh提供了Realtime global deployments(全球化实时部署)服务。
Now.sh 提供了免费的OSS 服务,配置如下:
名称 | 配置 |
---|---|
带宽 | 1GB* |
日志 | 100MB* |
部署 | ∞ |
并发实例 | 3 |
域 | - † |
MAX文件大小/存储空间 | 1MB / 1GB |
自动增长支持 | 不支持 |
团队协作人数 | 支持 |
图例:
- *超出此限额时,您需支付“按需”的价格。服务不中断,不会造成停机。
- †对于某些开源项目,我们赞助了自定义域的支持。请联系我们,以确定您是否适用。
- ‡在免费计划中,您的代码将是公开的和开源的,可通过所有部署的路径URL提供。
/_src
Reference:https://zeit.co/pricing
Now.sh - 简介:
now allows you to take your JavaScript (Node.js) or Docker powered websites, applications and services to the cloud with ease, speed and reliability. In practical terms, any directory that contains a package.json or Dockerfile can be transported to the cloud with one command: now. Every time you deploy a project, now will provide you with a new, unique URL (even before the upload has finished). These URLs will look like this (my-app is your automatically determined application name): my-app-erkgfjtrna.now.sh. When it’s time to take your deployment to production, you simply pick an appropriate alias (a custom domain).
Reference:https://zeit.co/now#whats-now
Now.sh - 安装:
基于客户端进行安装:
客户端下载地址:https://zeit.co/download
安装过程就不一一赘述了,因为我也没安装过。我觉得使用homebrew
或npm
之类的工具安装使用会更方便一些。
基于 npm 进行安装:
示例代码:
1 | ➜ npm install -g now |
如果你还不会使用 npm (Node Package Manager),请翻阅之前发布的 npm使用教程。
Reference:https://www.npmjs.com/package/now
Now.sh - CLI:
以下是所有可用命令的完整列表,以及您可以使用的命令和您每天工作时应记住的命令:
Syntax | Description |
---|---|
now deploy [path] | 使用此命令时,当前目录中的文件将被上传到now.sh,并将创建一个新的部署。之后,您将立即收到其网址,以便与全球其他人分享。 |
now ls\list [app] | 显示所有部署的列表。如果被定义,它将仅列出该命名空间下的部署。 |
now rm\remove [id] | 从now.sh平台中删除部署。该参数可以是您之前的部署的URL或主机名。 |
now ln\alias [id] [url] | 在现有部署上配置别名或自定义域名。 |
now domains [name] | 允许您直接从命令行管理域名。 |
now certs [cmd] | 默认情况下,now.sh将自动为您的部署配置证书。使用此子命令,您可以看到他们何时到期。 |
now secrets [name] | 如果您需要将敏感信息存储在只能由其中运行的代码访问的部署上。这可以通过使用它来实现,它允许您以安全的方式存储应用程序所需的功能(如API令牌或密码) |
now dns [name] | 列出使用zeit.world为域创建的所有DNS记录。该列表不包括由名称服务器自动生成的记录(如默认记录,为记录自动创建的记录等)。SOA``A / AAAA``ALIAS |
now open | 运行此子命令将在默认浏览器的当前目录中打开项目的最新部署(别名此时无效) |
now billing\cc | 轻松添加或删除帐户中的信用卡,并调整结算方式。 |
now upgrade\downgrade [plan] | 从命令行界面切换您的计划。即使命令运行后,我们也不要求您使用Web界面。整个过程直接发生在你的终端上。 |
now help | 显示终端中的子命令和选项列表 |
now login | 登录你的 ZEIT账户 |
Reference:https://zeit.co/docs/features/now-cli |
Now.sh - 使用:
要使用 Now.sh就必须要再 https://zeit.co 注册一个账户,只需要输入你的邮箱就好了,然后在本地进行认证,认证过程中需要输入你注册时所用的邮箱,然后打开邮箱点击链接进行认证。
示例代码:
1 | ➜ ~ now login |
邮件内容:
1 | Hi! |
Now.sh - 部署:
Now.sh is free for open-source projects and static deployments. It supports
Dockerfile
,package.json
and static sites out of the box. All builds are reproducible and executed in the cloud.译:Now.sh对于开源项目和静态部署是免费的。它支持Dockerfile,package.json和静态网站开箱即用。所有的构建都是可重现的,并在云中执行。
现在你可以使用now
命令来部署任何 web应用程序,现在 Now.sh 支持三种类型的部署:
- Static - 静态网页应用
- Node.js - Node.js 应用
- Docker - Docker应用(适用于所有其他应用)
Static 部署:
通过静态部署,可以将本地资源部署到 Now.sh 上,需要部署请访问应用程序目录并运行此命令:
1 | ➜ yourproject/ now |
如果你的静态 web 项目中包含index.html
文件,则项目可正常显示,否则只会显示文件和文件夹(用来做 ftp 服务器也不错)。
For all static deployments, you will be charged only for the bandwidth. You do not pay for computing resources and storage.
对于所有静态部署,您将仅为带宽收费。您不支付计算资源和存储空间。
Node.js 部署:
如果您的应用程序目录中有一个package.json文件,那么Now.sh会认为有效的Node.js部署。这是一个简单的Node.js部署在微服务的帮助下。
Node.js 应用必须要用以下两个文件才能被 Now.sh 识别。
index.js
示例代码:
1 | module.exports = () => ({ |
package.json
示例代码:
1 | { |
然后要部署此应用程序,请访问应用程序根目录并运行此命令:
1 | ➜ yourproject/ now |
Docker 部署:
如果您的应用程序目录包含一个Docker文件,那么现在考虑一个有效的Docker部署。它将基于Dockerfile构建一个docker映像,并基于此启动容器。
要部署一个简单的Go HTTP服务器,创建一个目录并添加这两个文件:
hello.go
示例代码:
1 | package main |
Dockerfile
示例代码:
1 | FROM golang:alpine |
部署总结:
项目在部署完成之后,我们会得到一个链接,可以通过这个链接来访问部署的项目。
1 | ➜ Index now |
每次更新部署后, url 都会生成一个新的,但是老的 url 都还是可以用的。如果最终网站要产品化,可以很容易的绑定自己的域名。
Reference: https://zeit.co/docs/getting-started/deployment
Now.sh - 域名:
当我们部署完应用程序的时,Now.sh 会为我们生成一个唯一部署URL,如果我们修改项目后进行多次部署,Now.sh 会生成多个 URL 为我们的项目,使用这些特定的 URL 可以访问不同版本的应用,但是这些URL 不容易记住,每次部署新版本都会更新地址,因此我们需要一个固定的域名。我们将使用now alias
命令将域名映射到应用的其中一个部署URL。
需要说明的是,自定义域仅适用于付费计划。如果您要为自己的应用使用自定义域,则需要升级您的帐户。具体价格请参考:https://zeit.co/pricing
使用now alias
命令的四种不同的方法是:
- 使用
now.sh
提供的域名 - 使用
now.sh
管理的自定义域名 - 使用自定义域,由
now
管理的DNS - 使用带有CNAME的自定义域名
使用now.sh提供的域名
这种方法是使用域名的最简单方法。要立即使用now.sh 后缀获取域名,只需运行以下命令即可,示例代码 :
1 | now alias https://my-web-app-avvuiuuwto.now.sh my-web-app |
现在可以使用https://my-web-app.now.sh来访问部署的项目。
###使用now.sh管理的自定义域
如果您想为自己的应用使用自定义域,最简单的方法是使用now
为您的应用购买域名。 只需运行以下alias命令,示例代码:
1 | now alias https://my-web-app-avvuiuuwto.now.sh my-web-app.com |
在这里,我们正在尝试将my-web-app.com域名分配给上述部署URL。如果域名可用,您可以在不离开终端的情况下确认并购买。
确认后,现在将处理您的所有技术细节,并允许您的用户使用https://my-web-app.com访问您的应用程序。
在这个过程中,
now.sh
将为我们的域名设置一个域加密SSL证书。
使用自定义域,由Now
管理的DNS
如果您已经有域名,这是您最好的选择。使用此方法,现在将处理您的域名的所有DNS管理。
首先,您需要将域名的域名服务器指向我们的全球DNS服务。这是怎么做到的:
- 访问您的域名提供商,并找到可以添加自定义nameserver的地方。
- 从此列表中选择两个或多个nameservers。
- 将now.sh 提供的nameserver设置为您的自定义域名的nameserver。
这里呢需要将我们购买的域名的解析权交给 now 来做,本网站域名再 godaddy购买,然后将其解析权交给 Dnspod ,使用管理起来更方便,跟 now.sh 原理一致。
例如,假设您的域名是my-custom-domain.com,设置name后,只需运行以下alias命令:
1 | now alias https://my-web-app-avvuiuuwto.now.sh my-custom-domain.com |
然后,您可以使用https://my-custom-domain.com访问您的应用程序。 您也可以使用my-custom-domain.com的子域,如下所示:
1 | now alias https://my-web-app-avvuiuuwto.now.sh ui.my-custom-domain.com |
在这个过程中,
now.sh
将为我们的域名设置一个域加密SSL证书。
Reference:Godaddy注册的域名如何使用DNSPod?
Reference:now.sh 提供的 Nameservers
使用带有CNAME的自定义域名
如果您正在管理您的域名的DNS设置,您可以使用此选项。 例如,假设您有一个名为my-app.work的域名,并且您已经有一个DNS设置。要映射应用程序的一个部署URL的 ui.my-app.work 域名,请访问您的DNS提供程序,并为ui.my-app.work添加指向alias.zeit.co的CNAME记录。之后,运行以下命令:
1 | now alias https://my-web-app-avvuiuuwto.now.sh ui.my-app.work |
现在您可以使用https://ui.my-app.work访问您的应用程序。
Reference:https://zeit.co/docs/getting-started/assign-a-domain-name
Now.sh - 日志:
日志很重要,因为它可以让您看到应用程序中发生的情况,尤其是在发生异常时。now可以保存所有部署的日志,并允许您搜索它们,让我们来看看如何访问日志:
通过CLI:
通过现在的CLI访问日志很简单,调用这个命令:
1 | now logs [deployment-url] |
您还可以使用应用的域名来搜索日志:
1 | now logs my-web-app.com |
有关now
日志的更多信息,请运行help命令:
1 | now logs --help |
这是一个预先查看 now的日志命令,让您检查最后10个HTTP GET请求:
1 | now logs -a -q "GET" -n 10 my-web-app.com |
通过Dashboard:
您还可以通过您的Web信息板访问和搜索日志,网址为https://zeit.co/dashboard。 单击信息中心内的任何部署URL,然后开始搜索日志。
Reference:https://zeit.co/docs/getting-started/logs
Now.sh - 注意事项:
使用 Now.sh来部署应用的优势:
- 自带的 https
- 真正的一键部署,不用自己管理服务器,将 severless 进行到底
- 不翻墙,访问速度很棒
其他注意事项:
- 为了节省资源,应用一段时间不用就会被 frozen (冻结),但是只要我们去敲链接去访问,就会自动 unfrozen ,只不过初次访问速度会受影响。
- 在 Now.sh提供的免费服务中,您的代码将是公开的和开源的,如果介意可升级账户或放弃使用。