Rails: как настроить NGINX + Passenger для обслуживания как статических сайтов, так и приложений Rails - PullRequest
0 голосов
/ 09 апреля 2019

У меня есть экземпляр AWS Ubuntu с приложением Rails 6 в режиме интеграции Passenger NGINX:

server {
  listen 80;
  listen [::]:80;
  server_name _;
  root /home/ubuntu/railsapp/public;
  passenger_enabled on;
  passenger_app_env production;
  location /cable {
    passenger_app_group_name railsapp_websocket;
    passenger_force_max_concurrent_requests_per_process 0;
  }
  client_max_body_size 100m;
  location ~ ^/(assets|packs) {
    expires max;
    gzip_static on;
  }
} 

Я хочу втиснуться в статический сайт, который не получает много хитов.В одиночку его конфиг:

server {
    listen 80;
    server_name static.site;
    root /home/ubuntu/static;
    index index.html index.htm;
    location / {
      try_files $uri $uri/ =404;
    }  
  }
}

Поэтому я пытаюсь объединить их.Статический сайт в порядке, но приложение Rails не работает (тайм-аут 504):

map $http_upgrade $connection_upgrade {
    default upgrade;
    ''      close;
}
server {
    listen 80;
    server_name railsapp.site
    root /home/ubuntu/railsapp/public;
    passenger_enabled on;
      passenger_app_env production;
      location /cable {
        passenger_app_group_name railsapp_websocket;
        passenger_force_max_concurrent_requests_per_process 0;
      }
      client_max_body_size 100m;
      location ~ ^/(assets|packs) {
        expires max;
        gzip_static on;
      }
    location / {
        proxy_pass http://0.0.0.0:3000;
        proxy_http_version 1.1;
        proxy_set_header Host $http_host;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection $connection_upgrade;
        proxy_buffering off;
    }
}
server {
    listen 80;
    server_name static.site;
    root /home/ubuntu/static;
    index index.html index.htm;
    location / {
      try_files $uri $uri/ =404;
    }  
  }
}

Как я могу обслуживать как Rails, так и статические сайты в Passenger + NGINX?

...