首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >rails nginx puma在/etc/nginx/site中复制上游的"puma“-启用

rails nginx puma在/etc/nginx/site中复制上游的"puma“-启用
EN

Stack Overflow用户
提问于 2015-03-20 14:37:32
回答 2查看 2.7K关注 0票数 5

我已经为本教程设置了服务器(https://coderwall.com/p/ttrhow/deploying-rails-app-using-nginx-puma-and-capistrano-3)

当我使用一个项目时,所有工作都正常,但是当我将另一个项目添加到这个VPS时,我出现了错误[emerg] 20737#0: duplicate upstream "puma" in /etc/nginx/sites-enabled/vsejalreg:1

我的nginx配置

代码语言:javascript
复制
upstream puma {
  server unix:///home/deployer/apps/vsejalreg/shared/tmp/sockets/vsejalreg-puma.sock;
}

server {
  listen 80;
  server_name wjreg.rubyserv.ru www.wjreg.rubyserv.ru;

  root /home/deployer/apps/vsejalreg/current/public;
  access_log /home/deployer/apps/vsejalreg/current/log/nginx.access.log;
  error_log /home/deployer/apps/vsejalreg/current/log/nginx.error.log info;

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

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

    proxy_pass http://puma;
  }

  error_page 500 502 503 504 /500.html;
  client_max_body_size 10M;
  keepalive_timeout 10;
}

代码语言:javascript
复制
upstream puma {
  server unix:///home/deployer/apps/register/shared/tmp/sockets/register-puma.sock;
}

server {
  listen 80;
  server_name ws.rubyserv.ru www.ws.rubyserv.ru;

  root /home/deployer/apps/register/current/public;
  access_log /home/deployer/apps/register/current/log/nginx.access.log;
  error_log /home/deployer/apps/register/current/log/nginx.error.log info;

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

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

    proxy_pass http://puma;
  }

  error_page 500 502 503 504 /500.html;
  client_max_body_size 10M;
  keepalive_timeout 10;
}

当我添加nginx配置一个一个-所有的工作!

如何修复这个包或美洲狮与许多项目无关?

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-03-21 04:29:20

Puma可以使用任何正确配置的项目:)您可以配置命名为上游(上游美洲狮)一次,而不是每个服务器配置。如果每个服务器需要不同的puma实例,只需设置具有不同名称的上游。

代码语言:javascript
复制
upstream puma_vsejalreg {
  server unix://...PATH.../vsejalreg-puma.sock;
}
upstream puma_register {
  server unix://...PATH.../register-puma.sock;
}
票数 4
EN

Stack Overflow用户

发布于 2016-02-27 11:12:15

请注意,您也需要更改此部分:

代码语言:javascript
复制
location @puma {
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $http_host;
    proxy_redirect off;

    proxy_pass http://puma;
  }

否则,您将遇到诸如- nginx: [emerg] host not found in upstream "puma" in /etc/nginx/sites-enabled/furnitureapp:25这样的错误。

所以,如果你把上游重命名为

代码语言:javascript
复制
upstream puma_register

您还需要将proxy_pass重命名为

代码语言:javascript
复制
location @puma {
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $http_host;
    proxy_redirect off;

    proxy_pass http://puma_register; <------ Change here
  }
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29169098

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档