【问题标题】: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