Cos*_*sta 13 couchdb amazon-ec2 amazon-web-services node.js
我有几个小型制作网站和一堆有趣的爱好者/实验应用程序等.我想在一个EC2实例上运行所有这些.
我可以安装node.js,npm,express和couchdb一次,然后在不同的端口上运行每个应用程序,并调整我的域注册表中的DNS设置指向适当的位置吗?
更新:谢谢迈克!对于在EC2上寻找多个IP地址的其他人:http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-instance-addressing.html
Dan*_*iel 32
有多种方法可以解决这个问题.
您可以在不同的端口上运行每个Node.js进程,只需打开到世界的端口即可.但是,您的URL在每个项目的主机名末尾都需要一个端口. yoururl.com:8080/
技术上会起作用,但可能不是你想要的.
您可以在一个EC2实例上使用多个IP地址,但是,它们每个月的额外成本约为3.65美元.因此,如果您想要在一次实例上托管10个不同的域名,那么每月额外收取超过30美元的托管费用.
另一方面,使用SSL的任何域都需要它自己的IP地址.
此外,您可以为实例分配的IP地址数量有限制,实例越小,您获得的IP地址就越少.
您可以分配的IP地址数量因实例类型而异.小型实例最多可容纳8个IP地址(跨2个弹性网络接口),而高内存四倍超大型和群集计算机八个超大型实例最多可分配240个IP地址(跨8个弹性网络接口).有关IP地址和弹性网络接口限制的更多信息,请转到Amazon EC2用户指南中的实例系列和类型.
Express附带虚拟主机功能.您可以在一个Node.js/Express服务器下运行多个域,并根据域名设置路由. vhost
在Express下启用此功能.
您可以在多个应用程序服务器前设置Nginx.这具有最大的灵活性.每个域可以有一个Node.js进程,允许您一次在一个域上进行更新和重新启动.它还允许您在Node.js进程旁边的相同EC2实例下托管Apache/PHP等应用程序服务器.
使用Nginx作为反向代理,您还可以在同一域下托管不同的应用程序服务器,但服务于不同的路径.
例如,Node.js可以提供域的主根路径,但您可以设置/blog/
路径以转到同一EC2实例上的Apache/PHP/Wordpress设置.
已经回答@ /sf/answers/3537000631/,但再次提及。
添加到 @Daniel 答案中,我想为那些正在寻找实现它的确切语法的人提及我的 nginx 的配置。
server {
listen 80;
server_name mysite.com;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
proxy_pass http://127.0.0.1:3000;
}
}
server {
listen 80;
server_name api.mysite.com;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
proxy_pass http://127.0.0.1:4500;
}
}
Run Code Online (Sandbox Code Playgroud)
只需创建两个具有唯一服务器名称和端口地址的服务器对象。
注意每个对象中的 proxy_pass 。
谢谢。
归档时间: |
|
查看次数: |
7892 次 |
最近记录: |