Настройка Nginx + Puma для Rails
Просто, чтоб не забыть.
Создаем или редактируем файл /path_to_your_rails_app/config/puma.rb (всякие пути и названия нужно указать свои, само собой):
threads_count = ENV.fetch("RAILS_MAX_THREADS") { 5 } threads threads_count, threads_count port ENV.fetch("PORT") { 3000 } environment ENV.fetch("RAILS_ENV") { "development" } app_dir = File.expand_path("../..", __FILE__) shared_dir = "#{app_dir}/tmp" #ниже вместо your_socket.sock пишете название своего файла сокета bind "unix://#{shared_dir}/your_sock.sock" #перенаправляем stdout в файлы логов stdout_redirect "#{app_dir}/log/puma.stdout.log", "#{app_dir}/log/puma.stderr.log", true # Allow puma to be restarted by `rails restart` command. plugin :tmp_restart
После этого в /etc/nginx/nginx.conf (или /etc/nginx/sites_enabled/your_conf_file):
upstream your_upstream { server unix:///var/www/your_app/tmp/your_sock.sock; } server { # listen 443; listen 80; server_name your_domain.ru; root /var/www/your_app/public; client_max_body_size 32m; # настройки для HTTPS # ssl on; # ssl_certificate /etc/letsencrypt/live/your_domain.ru/fullchain.pem; # ssl_certificate_key /etc/letsencrypt/live/your_domain.ru/privkey.pem; location / { proxy_pass http://your_upstream; # match the name of upstream directive which is defined above proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # настройки ниже нужны, если используется Action Cable # location /cable { # proxy_pass http://your_upstream; # proxy_http_version 1.1; # proxy_set_header Upgrade $http_upgrade; # proxy_set_header Connection "upgrade"; # } #эти четыре настройки ниже нужны, если используете SSL # proxy_set_header X-Forwarded-Proto $scheme; # proxy_set_header X-Forwarded-Ssl on; # Optional # proxy_set_header X-Forwarded-Port $server_port; # proxy_set_header X-Forwarded-Host $host; } location ~* ^/assets/ { # Per RFC2616 - 1 year maximum expiry expires 1y; add_header Cache-Control public; add_header Last-Modified ""; add_header ETag ""; break; } } #для автоматического перенаправления на https (если используется): server { listen 80; server_name your_domain.ru; rewrite ^ https://$server_name$request_uri? permanent; }
После этого могут возникнуть только проблемы с правами доступа к файлу сокета. По логам выяснять и решать.