Skip to content

Instantly share code, notes, and snippets.

@Lumbe
Last active May 1, 2017 14:27
Show Gist options
  • Save Lumbe/e3084d7153884bb1772f864020772209 to your computer and use it in GitHub Desktop.
Save Lumbe/e3084d7153884bb1772f864020772209 to your computer and use it in GitHub Desktop.
digitalocean: one droplet - multiple domains

Размещение нескольких ruby on rails приложений на одном дроплете Digitalocean

  1. Деплоим приложение как обычно с помощью Capistrano
  2. Настраиваем доменное имя на digitalocean, туториал
  3. Добавляем строку в файле /home/etc/hosts с доменным именем
# /home/etc/hosts
...
127.0.0.1 pinshop.com.ua www.pinshop.com.ua
...
  1. Настраиваем nginx - reverse proxy. Для этого в папке home/etc/nginx/sites-enabled должен быть файл конфигурации для каждого приложения. Пример файла:
# home/etc/nginx/sites-enabled/pinshop
upstream pinshop {
  server unix:///home/deploy/apps/pinshop/shared/tmp/sockets/pinshop-puma.sock;
}

server {
  listen 80;
  server_name pinshop.com.ua www.pinshop.com.ua; # доменное имя, которое так же нужно прописать в /etc/hosts

  root /home/deploy/apps/pinshop/current/public;
  access_log /home/deploy/apps/pinshop/current/log/nginx.access.log;
  error_log /home/deploy/apps/pinshop/current/log/nginx.error.log info;

  location ^~ /assets/ {
    gzip_static on;
    expires max;
    add_header Cache-Control public;
  }

  try_files $uri/index.html $uri @pinshop;
  location @pinshop {
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $http_host;
    proxy_redirect off;

    proxy_pass http://pinshop;
  }

  error_page 500 502 503 504 /500.html;
  client_max_body_size 10M;
  keepalive_timeout 10;
}
  1. Перезапускаем nginx
sudo service nginx restart

Теперь доменное имя будет связано с приложением rails, которое находится по пути указанном в директиве root

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment