Как развернуть puma с помощью nginx или apache, возможно ли это или нет необходимости использовать веб-сервер, такой как nginx или apache. Как лучше всего развернуть приложение с помощью puma?
Как развернуть пуму с nginx
Ответы (2)
Ключ находится в конфиге nginx для сайта.
server {
listen 80;
server_name mysite.com;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_pass http://localhost:4000;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
Как видите, строка proxy_pass http://localhost:4000;
указывает nginx прослушивать локальный хост на порту 4000, вы можете изменить это в соответствии со своими потребностями.
Это небольшое изменение для работы с ssl letsencrypt, конечно, вы должны настроить ssl с letsencrypt.
server {
listen 80;
server_name example.com;
location / {
return 301 https://example.com$request_uri;
}
}
server {
listen 443 ssl http2;
server_name example.com;
#listen [::]:443 ssl http2 ipv6only=on;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; # managed by Certbot
ssl_trusted_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
include /etc/nginx/snippets/ssl.conf;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_pass http://localhost:4000;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
Поскольку Puma не предназначена для прямого доступа пользователей, мы будем использовать Nginx в качестве обратного прокси-сервера, который будет буферизовать запросы и ответы между пользователями и вашим приложением Rails. Puma использует потоки в дополнение к рабочим процессам, чтобы более эффективно использовать доступный ЦП. Связь Nginx и puma осуществляется через сокет:
Исходное изображение: http://codeonhill.com
Если вам нужно объяснение того, как развертывать приложения с помощью Puma и Nginx, проверьте это