Ответ 1
Чтобы запустить puma с привязкой к сокету, просто используйте каталог /tmp
:
bundle exec puma -e development -b unix:///tmp/my_app.sock
Чтобы получить доступ к приложению через доменное имя, вы должны использовать что-то вроде nginx
и выполнить конфигурацию для него.
Для установки nginx
в Ubuntu просто запустите следующую команду:
sudo apt-get install nginx
Запустите sudo nano /etc/nginx/sites-available/my_app.conf
и поместите конфигурацию ниже в этот файл (Ctrl + X, Y - для сохранения изменений):
upstream my_app {
server unix:///tmp/my_app.sock;
}
server {
listen *:80;
server_name my_app.com;
access_log /var/log/nginx/my_app-access.log;
location /favicon.ico {
root /var/www/my_app/public/assets/favicon.ico;
gzip_static on;
expires max;
add_header Cache-Control public;
}
location / {
root /var/www/my_app/public;
try_files $uri @app;
gzip_static on;
expires max;
add_header Cache-Control public;
}
location @app {
proxy_pass http://my_app;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto http;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_next_upstream error timeout invalid_header http_502;
}
}
Вы должны изменить /var/www/my_app
и my_app.com
на соответствующие значения.
Добавить символическую ссылку в разрешенные сайты sudo ln -fns /etc/nginx/sites-available/my_app.conf /etc/nginx/sites-enabled/
Перезагрузите nginx: sudo service nginx restart
.
Свяжите свое доменное имя с IP-адресом сервера (через hosts
файл или DNS-провайдер).