它可能涉及到这样一个问题:How to run more than one app on one instance of EC2如何在一个EC2实例上运行多个应用程序?
但这个问题似乎只谈论多的node.js应用程序。
我想学习几个不同的东西,所以我建立了不同的网站来学习Ruby on Rails,LAMP和node.js.随着我的个人网站和博客。
有什么办法可以在同一个EC2实例上运行所有这些吗?
它可能涉及到这样一个问题:How to run more than one app on one instance of EC2如何在一个EC2实例上运行多个应用程序?
但这个问题似乎只谈论多的node.js应用程序。
我想学习几个不同的东西,所以我建立了不同的网站来学习Ruby on Rails,LAMP和node.js.随着我的个人网站和博客。
有什么办法可以在同一个EC2实例上运行所有这些吗?
首先,关于在一个盒子上设置多个Web应用程序,没有任何EC2特有的。您将需要在“反向代理”模式下使用nginx(或Apache)。这样,Web服务器在端口80(和443)上侦听,并且您的应用程序可以在各种其他端口上运行。每个传入请求都会读取“主机”标头,将请求映射到后端。所以不同的DNS名称/域显示不同的内容。
下面是如何设置nginx的反向代理模式:http://www.cyberciti.biz/tips/using-nginx-as-reverse-proxy.html
对于每一个“后端”的应用程序,你会想:
1)分配一个端口(3000在这个例子中)
2)写一个upstream
节,告诉它是应用程式是
3)写(虚拟)server
节从服务器名称映射到上游位置
例如:
upstream app1 {
server 127.0.0.1:3000; #App1's port
}
server {
listen *:80;
server_name app1.example.com;
# You can put access_log/error_log sections here to break them out of the common log.
## send request to backend
location/{
proxy_pass http://app1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
我更喜欢有Nginx的Apache中的前面的原因有两个:1)的nginx可以充当用少得多的存储器静态文件,和2)的nginx缓冲器数据到/从客户端,所以慢速互联网连接的人不会阻塞你的后端。
在测试你的配置,使用nginx -s reload
重新加载配置,并curl -v -H "Host: app1.example.com" http://localhost/
从你的配置测试特定域
你可以按照这个答案http://stackoverflow.com/a/16549172/93988。它足以与Ruby和Apache一起工作。 –
是的,这是我联系的问题。安装几个不同的Web服务器并在一个实例上运行它们,引用的答案仍然适用? –
是的。只要他们全部使用不同的端口,就不会有冲突。 –