【问题标题】:Connecting two servers using unix domain sockets使用 unix 域套接字连接两台服务器
【发布时间】:2015-01-23 11:50:31
【问题描述】:

ThinUnicorn 这样的Ruby Web 服务器通常在Nginx 后面使用(作为反向代理)。这种配置的好处是 Nginx Server 独立于 Ruby 版本,并且可以额外充当静态文件的代理。它们通常通过unix domain socket 相互连接,因为它比 TCP 环回连接更快。问题是如果您的应用程序由两部分组成,例如前端和后端或客户端和服务器,是否可以通过 unix 域套接字连接两个 Unicorn 或两个瘦服务器,如下所示:

nginx => thin (Frontend) --(unix domain socket)--> thin (backend)

【问题讨论】:

    标签: ruby sockets unix unicorn thin


    【解决方案1】:

    仅为代理到应用/应用到代理通信创建的应用服务器套接字。应用程序之间无法进行通信。

    您应该创建前端应用程序来传达您的 API(后端)。您可以将 nginx 用于此目的。

    只需在 nginx 配置中创建两个上游

    upstream frontend {
        server unix:/path/to/frontend/rails/app/tmp/thin.socket;
    }
    
    upstream backend {
        server unix:/path/to/backend/rails/app/tmp/thin.socket;
    }
    

    并在服务器部分使用它

    server { 
        location / {
            proxy_pass http://frontend;
        }
    
        location /api {
            proxy_pass http://backend;
        }
    }
    

    希望对你有帮助

    【讨论】:

      猜你喜欢
      • 2015-06-18
      • 1970-01-01
      • 1970-01-01
      • 2020-02-15
      • 2015-11-14
      • 1970-01-01
      • 2012-12-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多