我是 Ubuntu 的新手,通常是服务器端,我创建了一个 Rails 应用程序并将其部署在 Ubuntu Ec2 上。 我正在其上使用 Nginx 和 Thin 服务器。该应用程序在其上完美运行。
现在我想在同一服务器上部署另一个应用程序。 我已经将应用程序放在服务器上,当我尝试启动 Rails 应用程序时,它没有启动。 我猜是因为 nginx.conf 文件。
有人可以告诉我如何在同一服务器上运行两个应用程序
最佳答案
当您尝试浏览 Amazon EC2 上的计算机并且没有收到任何响应时,最好的怀疑是 AWS Security Group 。确保应用程序运行的端口在您计算机的安全组中打开:
(来源:amazon.com)
要让 nginx 运行这两个应用程序,您需要在其 nginx.conf
上配置它们
upstream app1 {
server 127.0.0.1:3000;
}
upstream app2 {
server 127.0.0.1:3020;
}
server {
listen 80;
server_name .example.com;
access_log /var/www/myapp.example.com/log/access.log;
error_log /var/www/myapp.example.com/log/error.log;
root /var/www/myapp.example.com;
index index.html;
location /app1 {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_pass http://app1;
}
location /app2 {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_pass http://app2;
}
}
此配置将监听本地端口 3000 上的 app1
和本地端口 3020 上的 app2
,并重定向以 http://my.example 开头的数据.com/app1
到第一个应用,以 http://my.example.com/app2
开头的数据到第二个应用。
关于ruby-on-rails - 如何使用 nginx 在 EC2 上运行两个应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22064397/