Nginx 502 при запуске Rails (Puma) с -d (демон) - PullRequest
0 голосов
/ 07 июля 2019

Ruby 2.5.1, Rails 5.2.2.1

Я пытаюсь заставить nginx получить апстрим через сокет puma.

Когда я запускаю rails s -e production, все хорошо.

Когда я запускаю rails s -e production -d Nginx возвращает 502 Bad Gateway

config / puma.rb

...
      app_dir = "/home/user/myapp"
      tmp_dir = "#{app_dir}/tmp"
      # Set up socket location
      bind "unix://#{tmp_dir}/sockets/puma.sock"
      # Logging
      stdout_redirect "#{app_dir}/log/puma.stdout.log", "#{app_dir}/log/puma.stderr.log", true
...

etc / nginx / sites-enabled/mydomain.com

upstream app {
    # Path to Puma SOCK file, as defined previously
    server unix:/home/user/myapp/tmp/sockets/puma.sock fail_timeout=0;
}

server {
    listen 80;
    server_name mydomain.com;

    root /home/user/myapp/public;

    try_files $uri/index.html $uri @app;

    location @app {
        proxy_pass http://app;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_redirect off;
    }

    error_page 500 502 503 504 /500.html;
    client_max_body_size 4G;
    keepalive_timeout 10;
}

var / log / nginx / error.log

    2019/07/07 13:45:09 [error] 21609#21609: *11391 connect() to 
unix:/home/user/myapp/tmp/sockets/puma.sock failed (111: Connection 
refused) while connecting to upstream, client: 172.68.11.91, server: 
mydomain.com, request: "GET /pages/one HTTP/1.1", upstream: 
"http://unix:/home/user/myapp/tmp/sockets/puma.sock:/pages/one", host: "mydomain.com"

(PS изменить с исходного домена на mydomain.com) Какая разница?Как это исправить?Пожалуйста, объясните и помогите

ОБНОВЛЕНИЕ

Кажется, что работает с флагом демона, который не создает puma.sock в / home / user / myapp / tmp / sockets.Почему и где это?

1 Ответ

0 голосов
/ 07 июля 2019

Решение

Не знаю почему, но это работает, если запустить Puma (не сервер рельсы)

RAILS_ENV=production bundle exec puma -C config/puma.rb -d
...