使用unix域套接字连接两台服务器

时间:2015-01-23 11:50:32

标签: ruby sockets unix unicorn thin

像<{3}}和Thin这样的Ruby Web服务器经常在Nginx后面使用(作为反向代理)。这种配置的优点是Nginx Server独立于Ruby版本,并且可以另外作为静态文件的代理。它们通常通过Unicorn相互连接,因为它比TCP环回连接更快。问题是,如果你有一个由两部分组成的应用程序,比如前端和后端或客户端和服务器,是否可以通过unix域套接字连接两个Unicorn或两个瘦服务器,如下所示:

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

1 个答案:

答案 0 :(得分: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;
    }
}

我希望它有所帮助