如何使用nginx或apache部署 puma ,这是可能的还是没有必要使用像 nginx 或 apache 这样的 Web 服务器。使用puma部署应用程序的最佳方式是什么?
问问题
2177 次
2 回答
2
关键在该站点的 nginx conf 中。
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上侦听 localhost,您可以根据需要进行更改。
这是使用 sslletsencrypt 的一个小改动,当然您应该使用letsencrypt 配置ssl。
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";
}
}
于 2017-08-22T12:32:18.683 回答
1
由于 Puma 不是为用户直接访问而设计的,我们将使用 Nginx 作为反向代理来缓冲用户和 Rails 应用程序之间的请求和响应。除了工作进程之外,Puma 还使用线程来更多地利用可用的 CPU。Nginx和puma之间的通信是通过socket进行的:
如果您需要解释如何使用 Puma 和 Nginx 部署应用程序,请查看此
于 2015-11-09T15:38:10.463 回答