Я пытаюсь развернуть простое приложение Rails на AWS с NGINX и Puma на Ubuntu 16.04.Я не использую никаких других инструментов развертывания, так как я хочу выяснить, как все это работает, прежде чем сделать это.
Я подтвердил, что NGINX работает, и я мог получить доступ к странице по умолчанию из своего браузера.Puma тоже работает, и я не вижу никаких проблем с этим.Но когда я пытаюсь получить доступ к своему приложению Rails из браузера, я получаю «502 Bad Gateway».
Это мой файл конфигурации NGINX:
upstream hspc {
server unix:///home/ubuntu/hspc/shared/sockets/puma.sock;
}
server {
listen 80;
}
server_name ec2-24-347-141-127.us-west-1.compute.amazonaws.com;
root /home/ubuntu/hspc/public;
try_files $uri/index.html $uri @hspc;
location @hspc {
proxy_pass http://ec2-56-347-141-127.us-west-1.compute.amazonaws.com;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location ~* ^/assets/ {
# Per RFC2616 - 1 year maximum expiry
expires 1y;
add_header Cache-Control public;
}
}
Корень приложения My Rails находится по адресу /home/ubuntu/hspc
.Я звоню в Puma с
RAILS_ENV=production rails server
Мой config/puma.rb
является стандартным:
workers 1
threads 1, 6
app_dir = File.expand_path("../..", __FILE__)
shared_dir = "#{app_dir}/shared"
# Default to production
rails_env = ENV['RAILS_ENV'] || "production"
environment rails_env
daemonize false
# Set up socket location
bind "unix://#{shared_dir}/sockets/puma.sock"
# Logging
stdout_redirect "#{shared_dir}/log/puma.stdout.log", "#{shared_dir}/log/puma.stderr.log", true
# Set master PID and state locations
pidfile "#{shared_dir}/pids/puma.pid"
state_path "#{shared_dir}/pids/puma.state"
activate_control_app
on_worker_boot do
require "active_record"
ActiveRecord::Base.connection.disconnect! rescue ActiveRecord::ConnectionNotEstablished
ActiveRecord::Base.establish_connection(YAML.load_file("#{app_dir}/config/database.yml")[rails_env])
end
Если я пытаюсь перейти на http://ec2-24-347-141-127.us-west-1.compute.amazonaws.com
или ec2-24-347-141-127.us-west-1.compute.amazonaws.com/users
, я получаю '502 Bad Gateway'.
Приложение My Rails отлично работает в режиме разработки и в рабочем режиме на моей машине.Как я могу заставить его работать на сервере?Любая помощь будет оценена.