Приложение Rails не отображается на IP-адресе сервера (просто пустая страница)
Я застрял с производственным сервером. Уже пытаюсь решить это 2 дня, но не понимаю, почему так происходит. Проблема в том, что я пытался развернуть приложение Rails с помощью nginx/unicorn/capistrano. Наконец, я получил процесс работы. Nginx и единорог кажутся нормальными на моем рабочем сервере, но когда я вхожу в IP-адрес моего сервера, появляется только пустой экран. Раньше у меня было хотя бы сообщение, что nginx запущен. Я предполагаю, что проблема может быть в том, что nginx и единорог ищут приложение в неправильном месте, но я проверил маршруты, и они кажутся правильными. В приложении есть корневая страница приветствия, поэтому она должна отображаться там...
Не могли бы вы помочь мне с вашими мыслями, что может быть проблемой?
PS Если я создаю тестовое приложение rails на сервере и запускаю его с помощью webricks, это отображается в MY_SERVER_IP:3000, поэтому проблема однозначно связана с unicorn/nginx.
Мой файл nginx.conf:
upstream unicorn {
server unix:/tmp/unicorn.foreignernetwork.sock fail_timeout=0;
}
server {
listen 80 default deferred;
server_name justforeign.com;
root /var/www/foreignernetwork/current/public;
location ^~ /assets/ {
gzip_static on;
expires max;
add_header Cache-Control public;
}
try_files $uri/index.html $uri @unicorn;
location @unicorn {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_pass http://unicorn;
}
error_page 500 502 503 504 /500.html;
client_max_body_size 4G;
keepalive_timeout 10;
}
Мой файл unicorn.rb:
root = "/var/www/foreignernetwork/current"
working_directory root
pid "#{root}/tmp/pids/unicorn.pid"
stderr_path "#{root}/log/unicorn.log"
stdout_path "#{root}/log/unicorn.log"
listen "/tmp/unicorn.foreignernetwork.sock"
worker_processes 2
timeout 30
# Force the bundler gemfile environment variable to
# reference the capistrano "current" symlink
before_exec do |_|
ENV["BUNDLE_GEMFILE"] = File.join(root, 'Gemfile')
end