Apache2 背后的运行机制

Apache2 背后的运行机制

目前我的 Ubuntu 服务器使用 Apache2 + Passenger 运行 RubyOnRails 应用程序。

现在我需要部署一个需要在 Thin 而不是 Passenger 上运行的 Sinatra(普通 Ruby 应用程序)。

我熟悉配置 Apache,并且愿意以这种方式继续使用 VirtualHosts(在站点可用中)等。

如何将 Apache 中的 VirtualHost “路由”至 Thin 服务器?

答案1

您将把 Apache 配置为“反向代理” - 该搜索词将为您指出大量有关配置的信息,但这里有一个示例,应该可以让您了解您正在寻找的大部分部署。

如果您要使用不同的主机名和不同的<VirtualHost>,那么您可以执行以下操作:

<VirtualHost *:80>
    ServerName sinatra.example.com
    # Any normal settings you use go here; access logs, ServerAdmin, etc

    # Replace the 9999 below with the port that thin is using, note that it can't
    # be the same as Apache's port.
    # This can also be a service running on adifferent computer if you
    # use another IP address instead of 127.0.0.1
    ProxyPass / http://127.0.0.1:9999/
    ProxyPassReverse / http://127.0.0.1:9999/
</VirtualHost>

对您来说可能有用的另一种配置是将其作为现有的子目录<VirualHost>;您可以<Location>向现有配置中添加一个块:

<Location /sinatra/>
    ProxyPass http://127.0.0.1:9999/
    ProxyPassReverse http://127.0.0.1:9999/
</Location>

答案2

您可以使用 Varnish 路由应用请求。我在上一份工作中用我们的 RoR/Varnish/NGINX 堆栈做过这件事。

此外,Varnish 缓存非常棒!

相关内容