3

如何使用nginxapache部署 puma ,这是可能的还是没有必要使用像 nginx 或 apache 这样的 Web 服务器。使用puma部署应用程序的最佳方式是什么?

4

2 回答 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进行的:

nginx 美洲狮

图片来源:http ://codeonhill.com

如果您需要解释如何使用 Puma 和 Nginx 部署应用程序,请查看

于 2015-11-09T15:38:10.463 回答