【问题标题】:How to set Rails server to apache?如何将 Rails 服务器设置为 apache?
【发布时间】:2023-03-24 16:52:01
【问题描述】:

由于我正在研究 PHP + Apache + Mysql,并且我正在使用不同配置的 Ruby on Rails,因此我想以这样的配置开始我的新项目:Rails + Apache + Mysql。 我已经将 Rails 项目与 mysql 连接,但我不知道如何将服务器设置为 Apache。 rails server 一直在启动 WEBrick。设置apache服务器的解决方案是什么?

【问题讨论】:

    标签: mysql ruby-on-rails ruby apache


    【解决方案1】:

    我建议使用 nginx 而不是 apache。如果你真的想使用apache,你可以看看passenger。

    你可以使用apache的proxypassreverse模块

    模块依赖

    • mod_rewrite
    • mod_ssl
    • mod_proxy
    • mod_proxy_http

    您的虚拟主机可能看起来像这样

    <VirtualHost *:80>
    ServerName gitlab.example.com
    
    ProxyPreserveHost On
    
    <Location />
      Order deny,allow
      Allow from all
    
      ProxyPassReverse http://127.0.0.1:3000/
      ProxyPassReverse http://example.com/
    </Location>
    
    RewriteEngine on
    RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f
    RewriteRule .* http://127.0.0.1:3000%{REQUEST_URI} [P,QSA]
    </VirtualHost>
    

    如果您的应用程序在另一个端口下运行,您将不得不更改端口

    【讨论】:

      【解决方案2】:

      Passenger 是一个可以作为 apache 模块安装的 rails 容器。 运行以下两条命令安装passenger:

      gem install passenger
      passenger-install-apache2-module
      

      然后,只需按照屏幕上显示的说明进行操作。 最后,您将看到一个示例VirtualHost。使用它来调整您的实际 VirtualHost 设置

      您还将看到与将乘客加载为 apache 模块有关的 3 行代码。只需将这些行复制粘贴到您的 httpd.conf(或 apache.conf 视情况而定)。

      使用此设置,您无需运行 WEBrick。乘客将自动启动您的 Rails 应用程序

      如果您还在同一个 apache 实例上运行 PHP 应用程序,您可以使用 PassengerEnabled off 指令在您的 PHP 相关 VirtualHost 中关闭乘客

      更多配置选项见Passenger Manual for Apache

      【讨论】:

        猜你喜欢
        • 2017-09-02
        • 1970-01-01
        • 1970-01-01
        • 2017-10-17
        • 1970-01-01
        • 1970-01-01
        • 2012-05-15
        • 2019-08-21
        • 1970-01-01
        相关资源
        最近更新 更多