Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux Node.js部署到web_Linux_Node.js_Dns - Fatal编程技术网

Linux Node.js部署到web

Linux Node.js部署到web,linux,node.js,dns,Linux,Node.js,Dns,我有一个node.js应用程序,完全构建并运行在localhost:3000上。我还买了一个域名。我可以用什么最简单的方法让域名指向我的应用程序?当我输入example.com时,我想查看我的应用程序。我真的不知道谷歌这个成功的术语,很多方法似乎过于复杂。我已经花了数小时试图使用关键的web服务将其部署到AWS上,但这远远超出了我的需要 如果您要部署到AWS,我建议您尝试ElasticBeanstalk(EB)。EB使将应用程序部署到AWS变得异常容易,如果您遵循这些步骤,您应该能够在一小时内部

我有一个node.js应用程序,完全构建并运行在localhost:3000上。我还买了一个域名。我可以用什么最简单的方法让域名指向我的应用程序?当我输入example.com时,我想查看我的应用程序。我真的不知道谷歌这个成功的术语,很多方法似乎过于复杂。我已经花了数小时试图使用关键的web服务将其部署到AWS上,但这远远超出了我的需要

如果您要部署到AWS,我建议您尝试ElasticBeanstalk(EB)。EB使将应用程序部署到AWS变得异常容易,如果您遵循这些步骤,您应该能够在一小时内部署第一个版本,后续版本将更快,因为您不会在每次部署时创建新环境和启动新实例。您可以在的AWS文档中阅读更多关于EB的信息,并且有一些很好的部署应用程序的演练,但是它们大部分是通过GUI完成的,而且,我更喜欢命令行

要开始使用EB,首先需要安装aws命令行界面或cli。请按照此处适用于您的环境的说明进行操作:

一旦安装了这些凭据,您需要告诉AWS cli要使用哪些凭据。如果您使用的是OSX,您可以
sudo nano~/.aws/config
,这将打开aws配置文件,您可以将凭证放入该文件中,如下所示:

[profile eb-cli]
aws_access_key_id = your-key-here
aws_secret_access_key = your-key-here
现在已经安装了cli,只需在应用程序的根目录中使用
eb init
初始化ElasticBeanstalk即可。cli将询问您以下问题,以便为AWS配置应用程序,然后部署应用程序:

  • 选择一个默认区域。我选择了us-east-1作为离我最近的区域,但是你可以使用任何你喜欢的区域
  • 选择要使用的应用程序。因为这是您的第一个应用程序,所以您必须创建一个新的应用程序。CLI将识别目录的名称,并假定该名称是应用程序的名称。您可以直接按enter键将其设置为应用程序名,也可以随意命名
  • 似乎您正在使用Node.js。这是正确的吗?
  • 选择一个平台版本。最新的平台版本是64位Amazon Linux 2016.03 v2.10,除非您有充分理由使用旧版本,否则请坚持使用最新版本
  • 您的实例是否需要SSH?如果选择“是”,则必须选择要使用的密钥对。如果尚未生成密钥对,请暂时选择“否”。如果您确实希望稍后使用SSH,则可以创建一个新的密钥对,然后在GUI中更新您的环境以使用该密钥对
  • 现在将返回默认命令提示符,其中下一个命令是
    eb create
    。这将为您的应用程序创建一个环境
  • 输入环境名称。可以随意使用默认值
  • 输入DNS CNAME前缀。同样,可以随意使用默认值
  • 从这里开始,ElasticBeanstalk将使用您选择的默认ElasticBeanstalk设置接管应用程序并将其部署到AWS。您将获得一个具有自动缩放策略的负载平衡器、一个RDS数据库(如果您的应用程序需要),以及一个带有公共DNS的EC2实例,您可以将域指向该实例

    您的公共DNS将具有语法
    .elasticbeanstalk.com
    ,看起来类似于
    myapp dev environment.us-east-1.elasticbeanstalk.com
    。要获得它,您只需在命令行中键入
    eb status
    ,它就会作为CNAME出现在那里

    复制您的CNAME(
    myapp-dev-environment.us-east-1.elasticbeanstalk.com
    )并转到您的注册商处,打开您域的DNS设置。为您的域创建一个新的CNAME,名称为
    www
    ,值为
    myapp-dev-environment.us-east-1.elasticbeanstalk.com
    。将ttl设置为您想要的任何值并保存它


    转到浏览器,在地址栏中键入www.yourdomain.com。如果你做的一切都正确,你应该会看到你的应用程序所服务的索引页。

    通常,你会将你的应用程序放在一个托管服务上,这样它就可以在公共互联网上使用。然后,该托管服务将告诉您服务器的IP地址,您可以通过为域使用的任何DNS服务将域配置为指向该IP地址。您如何在给定的托管服务上部署node.js应用程序完全取决于特定的托管服务,您需要从他们那里获得指示。您购买或注册域名的注册网站应该有一个用于设置DNS条目的仪表板。不过,这并不是一个真正的堆栈溢出问题。