最终使用云服务指南– Ayush Verma –中

使用服务的终极指南

本指南将向您展示如何创建虚拟服务器以及如何在其中部署应用程序。 我们正在将Digitalocean用于PaaS。

好的,为什么我要编写此TL,DR指南?

本指南的目的是向您介绍配置虚拟服务器的概念。 在云计算领域,您可能会将应用程序部署到各种提供商,例如Heroku,Amazon Web Services,Google Cloud,Microsoft Azure,Rackspace等。 了解如何独自执行此操作非常重要。 这是一个入门指南; 它仅指出您应该在何处实施更安全的最佳做法-接下来将看到它们。 所有这些ToDo都是基于Experience的。 遵循本指南后,您将能够旋转您的第一台服务器并托管一个不错的投资组合。 酷..是吗?

我们在这里会看到什么? 没有深情。 诺言

  1. 注册数字海洋
  2. 确定什么是小滴以及如何创建小滴
  3. 通过命令行使用远程服务器(Droplet)
  4. 设置您的虚拟服务器
  5. 部署应用
  6. 常问问题

关于数字海洋的介绍

数字海洋是平台即服务(PaaS)。 它旨在做一件事情并且做得很好- 创建供您使用的Web服务器实例。 外出工作后,您将接触到各种PaaS提供商-亚马逊的EC2,Heroku,AppHarbor,当然还有Digital Ocean。 今天,您将要注册Digital Ocean, 创建一个Droplet (代表服务器),编写一个应用程序,然后发布给全世界看看! 因为向您的同学们展示您的工作成果真是太酷了,所以向您的朋友和潜在的雇主们展示会不会更酷? 另外,这会让您在找工作时站起来:可以说我可以配置和设置服务器是一件大事,这也很酷😛

1.注册数字海洋。

Digital Ocean需要存档的借记卡。 请注意,如果您用完了积分,将向您的信用卡付款。 但是您可以使用50美元的免费 信用额度 来启动服务器,这足以满足3/4年的需求,请按照说明进行操作并返回此处。 也尝试 这些

  1. 浏览至https://www.digitalocean.com/
  2. 输入您的电子邮件地址并创建一个密码,在主页上注册一个新帐户。
  3. 您会收到一封确认电子邮件(最多可能需要5分钟)。
  4. 确认帐户后,您需要输入信用卡/借记卡信息。 这样做。 别担心朋友 。 他们现在甚至不会向您收取任何费用。
  5. 现在,在执行其他操作之前,请选择配置文件图标,然后选择结算
  6. 输入通过电子邮件发送给您的唯一代码,以获取免费的赠送金额! (如果去免费信用)。

2.确定什么是小滴以及如何创建小滴!

Droplet是Digital Ocean提供的可伸缩服务器。 Digital Ocean支持(以及其他)各种Linux平台进行开发。 Droplet可以为您用于自己的产品组合的小型网站提供服务,并且可以扩展以托管企业应用程序! 有关Droplet的最好的事情之一就是它可以扩展-如果您的站点崩溃了,您可以扩展它拥有的资源而无需创建新服务器。 最好的部分是支持。 他们使用基于票证的系统提供了很好的支持。

现在,我们需要找到一些东西,以便轻松安全地登录到我们的Droplet。

找到SSH密钥。 在此处阅读有关SSH的更多信息

将您的SSH密钥保密。 这些本应保密。 保持安全。 不要与陌生人分享。

我们需要为您创建一种安全的方式来登录您创建的任何Droplet。 我们将使用您已经在计算机上使用的私钥。 您只应与您信任的实体共享私钥! 我只与我的计算机和运行的服务器共享我的数据库。 我什至有一份我的遗嘱! 他们是私人的!

因为我想确保只有您自己 -俄罗斯的一些黑客,中国的一些脚本小子-不能访问您的Droplet,所以我们将使用我们已经习惯使用的私钥连接到服务器。

打开终端(Ubuntu / mac),然后输入以下命令:

列出./ssh目录中的所有键。 您应该看到一个id_rsa.pub 。 这是您的公钥。

  ls -al〜/ .ssh 

在Sublime Text /其他任意键中打开密钥,以便我们稍后可以使用它。

  subl〜/ .ssh / id_rsa.pub 
cat〜/ .ssh / id_rsa.pub#如果没有升华

如果您没有SSH密钥。 点击这里生成

您完成了一半。 现在创建一个液滴

  1. 如果尚未登录Digital Ocean,请先登录。
  2. 选择右上角的“ 创建液滴 ”。
  3. 给小滴起个名字。 它可以是my-sitemycutesite.com 。 该名称仅供参考。
  4. 为您的Droplet选择$ 5 /月的大小(爱好网站使用的资源少于大型生产网站)
  5. 选择一个区域。
  6. 忽略可用的设置。
  7. 选择Ubuntu 16.04操作系统。
  8. 选择添加SSH密钥。 您将复制/粘贴我们刚才检索到的SSH密钥到文本框中。 在这里仔细检查。
  9. 选择创建液滴。
  10. Annnnndd我们等待! 哇,完成了。

3.通过命令行使用远程服务器(Droplet)。 最简单,最好的方法。

登录并通过几个步骤设置服务器!

  1. 登录到远程服务器(Droplet)
  2. 因此,您必须分配了IP。 ssh root@0.0.0.0
  3. 我已经神奇地登录了,因为它使用了以前的私钥来验证我的身份!
  $ sudo apt-get update && apt-get upgrade#更新和升级仓库 
  1. 现在,探索您的文件系统。 apt install tree使用tree命令。
  2. apt与Mac OS X的brew类似–它是命令行应用程序的软件包管理器。
  3. pwdcd周围。 随意给mkdir几个文件。 事情看起来应该熟悉。
  4. 如果您安装了默认版本的Ubuntu,则可能会注意到您正在使用bash shell。
  5. 考虑在此系统上寻找您的.bash_profile
  6. 练习完Unix / Linux技能后,继续前进。 见这里bash
  7. 像其他任何计算机一样,用户可以logout系统以退出。

现在,您已自动以root用户身份登录。 该用户拥有服务器的所有功能。 最佳实践是创建新用户来处理特定任务(例如,一个名为dba_admin的用户用于数据库,一个名为webmaster的用户用于Web服务器)。

4.设置您的虚拟服务器

我们将使用apt软件包管理器来安装一些工具。 您可能还记得在同类研究中较早时在Mac OS X中使用brew执行此操作。 因为每个环境和应用程序都不相同,所以我们在此存储库中提供了一些脚本来帮助简化生活。 本指南将包含一些熟悉的堆栈。 您应该只安装所需的东西,而不要安装其他东西。 安装在软件上的不必要的软件可以首先暴露您不需要的安全漏洞。

例如,请参见此http://ayushverma.xyz

它通过新加坡服务器以完全相同的配置托管。

您可以ping它并获取任何小滴的公共IP

大家

安装Git

apt install git && apt install build-essential

红宝石

在Linux机器上安装Ruby

  apt install ruby​​#安装红宝石 
apt install ruby​​-dev#安装一些gem必需的构建工具(bcrypt,json,...)

通过运行ruby -v验证是否已安装ruby -v

的MySQL

MySQL要求您添加到Oracle信息库的链接。 它没有在apt公开托管。 首先,我们将获取该存储库,将其添加到apt ,并更新apt以便找到MySQL。

  #获取MySQL信息库信息 
wget http://dev.mysql.com/get/mysql-apt-config_0.8.0-1_all.deb
#安装
须藤dpkg -i mysql-apt-config_0.8.0-1_all.deb
#您将获得一个GUI选项; 选择默认选项(5.7)
#并退出。 还行吧! 这里没有浮华。
#更新apt以便它可以指向MySQL存储库
sudo apt更新

安装完成后,我们将安装MySQL。

  #安装Ruby用于构建mysql2 gem的C库 
apt-get安装libmysqlclient-dev
#安装mysql
apt安装mysql服务器

安装后,我们可以使用以下命令控制MySQL:

  #开始 
sudo服务mysql启动
# 停
sudo服务mysql停止
#资讯
sudo服务mysql状态

要登录MySQL,可以使用mysql -p来登录。 -p指定用户正在使用密码(因此它要求您输入一个)。

MongoDB

我们建议使用来自Mongodb的Ubuntu官方安装指南:https://docs.mongodb.com/v3.2/tutorial/install-mongodb-on-ubuntu/

Node.js(LTS v4.0)

此版本的节点是io.js合并后的第一个LTS版本。 要使用许多Javascript 2015(ES6)功能,需要'use strict'或根本无法使用。 在apt可用的标准应用程序列表中未包含Node。 我们需要自己添加:

  curl -sL https://deb.nodesource.com/setup_4.x | 须藤-E bash- 

完成后,我们可以运行以下命令来安装Node:

  apt安装nodejs 

您可以通过运行以下命令来验证是否已安装Node和npm

  npm -v 
节点-v

Node.js(LTS v6.0)

此版本的节点包含大多数Javasript 2015(ES6)功能,可直接在Node中使用,而无需进行编译。 在apt可用的标准应用程序列表中未包含Node。 我们需要自己添加:

  curl -sL https://deb.nodesource.com/setup_6.x | 须藤-E bash- 

完成后,我们可以运行以下命令来安装Node:

  apt安装nodejs 

您可以通过运行以下命令来验证是否已安装Node和npm

  npm -v 
节点-v

5.部署应用程序

这是需要认真对待的一些重要的重要事情!

通过终端命令,服务器上的应用程序可以像笔记本电脑上的任何其他应用程序一样运行。 要使应用程序在虚拟服务器上运行,您必须考虑其在笔记本电脑上的运行方式。 需要数据库吗? 该数据库正在运行吗? 您是否更改了环境变量以反映笔记本电脑和服务器之间的不同SQL用户? 部署应用程序时需要考虑很多事情。 在进入特定平台之前,需要考虑以下问题:

  • 安装了Git吗?
  • 您是否已将应用程序克隆到服务器?
  • 我的应用程序需要数据库吗? 我的计算机和服务器上的类型是否相同?
  • 我是否为数据库创建了合适的SQL用户?
  • 我是否已更新配置文件和环境变量以指向正确的服务器?
  • 我是否已删除所有断点并将我的应用设置为在生产模式下运行(与开发相对)?
  • 我是否已经运行了所有与数据库相关的任务(Rake,Gulp等)?

现在,我们需要创建一个目录来存储我们所有的Web应用程序。

  cd /#根目录 
cd / var#var目录
mkdir www#创建/ var / www
pwd#/ var / www

使用/var/www文件夹中的Git克隆您要运行的所有应用程序。 这是在Debian(Ubuntu)linux服务器上存储Web应用程序的典型位置。 此位置是在数十年的Web开发中一直保持不变的默认值之一。

部署节点应用程序

要部署Node应用程序,请将您的Git项目克隆到/var/www/文件夹中并进行更改。 为您的应用程序安装所需的模块:

  npm安装 

接下来,安装pm2,这是Node应用程序的过程监视器。

  npm安装pm2 -g 

最后,您可以通过运行package.json内部为npm start指定的脚本来启动应用程序。

  pm2启动app.js -x---prod 

您也可以停止应用程序(用于维护和升级):

  pm2 stop app.js -x---prod 

常问问题

好吧,我们可能已经错过了一些小事情!

我如何使用Nano?

  • 退出— ctrl-x
  • 提示您保存-选择Y或N
  • 提示您确认保存位置。 编辑或按回车/确认。

如何退出vi?

  • : + q!
  • 强制退出而不保存

数字海洋CLI

  • 在这里检查

本文使用的所有脚本都可以在G ithub上找到