可能与以下问题有关:如何在一个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/
从配置中测试特定域
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句