Rails:Apache和Passenger的Vhost配置
我正在尝试在我的服务器上部署一个简单的Rails 4应用程序,该服务器已经有Apache2,并且正在托管其他几个站点和服务(即在启用站点的情况下有几个vhost配置)。我在本地机器和测试服务器上执行此操作时遇到了一些问题,因此我首先尝试让它在AWS t1.micro实例上工作,只使用一个vhost配置。我已经写了一个脚本来为我完成大部分繁重的工作,它位于我的github上 我在repo中有两个vhost配置文件,并试图让其中一个正常工作。该脚本只是复制并一次启用一个脚本 使用my ruby app basic或my ruby appvhost config,我可以导航到,但我看到的是“您要查找的页面不存在。您可能键入了错误的地址,或者页面可能已移动。”ttp://54.xxx.xxx.xxx/ 我只得到默认的apache2页面(“它工作!”) My/var/www/My-ruby-app/log/production.log显示Rails:Apache和Passenger的Vhost配置,apache,ruby-on-rails-4,apache2,passenger,Apache,Ruby On Rails 4,Apache2,Passenger,我正在尝试在我的服务器上部署一个简单的Rails 4应用程序,该服务器已经有Apache2,并且正在托管其他几个站点和服务(即在启用站点的情况下有几个vhost配置)。我在本地机器和测试服务器上执行此操作时遇到了一些问题,因此我首先尝试让它在AWS t1.micro实例上工作,只使用一个vhost配置。我已经写了一个脚本来为我完成大部分繁重的工作,它位于我的github上 我在repo中有两个vhost配置文件,并试图让其中一个正常工作。该脚本只是复制并一次启用一个脚本 使用my ruby ap
I, [2014-01-24T10:47:36.900542 #9612] INFO -- : Started GET "/my-ruby-app" for 80.81.17.94 at 2014-01-24 10:47:36 +0000
F, [2014-01-24T10:47:36.902169 #9612] FATAL -- :
ActionController::RoutingError (No route matches [GET] "/my-ruby-app"):
显然,我需要修改routes.rb文件,但我应该更改什么?从git repo中的脚本可以看出,它只是rails new
中的默认routes.rb。此时我只想看到默认的rails应用程序登录页,因此我不确定如何处理routes.rb文件
这里是vhost配置
我的ruby应用程序basic
#This is the config suggested by the passenger module after it finishes compiling, modified for 'my-ruby-app'
<VirtualHost *:80>
ServerName www.my-ruby-app-host.com
# !!! Be sure to point DocumentRoot to 'public'!
DocumentRoot /var/www/my-ruby-app/public
<Directory /var/www/my-ruby-app/public>
# This relaxes Apache security settings.
AllowOverride all
# MultiViews must be turned off.
Options -MultiViews
</Directory>
</VirtualHost>
#这是乘客模块编译完成后建议的配置,为“我的ruby应用程序”修改
服务器名www.my-ruby-app-host.com
# !!! 确保将DocumentRoot指向“public”!
DocumentRoot/var/www/my-ruby-app/public
#这放松了Apache的安全设置。
允许超越所有
#必须关闭“多视图”。
选项-多视图
我的ruby应用程序
#Based on Apache section of Passenger documents
<VirtualHost *:80>
ServerName www.my-ruby-app-host.com
# !!! Be sure to point DocumentRoot to 'public'!
DocumentRoot /var/www/
<Directory /var/www/>
Allow from all
</Directory>
Alias /my-ruby-app /var/www/my-ruby-app/public
<Location /my-ruby-app>
PassengerBaseURI /my-ruby-app
PassengerAppRoot /var/www/my-ruby-app
</Location>
<Directory /var/www/my-ruby-app/public>
# This relaxes Apache security settings.
AllowOverride all
# MultiViews must be turned off.
Options -MultiViews
</Directory>
</VirtualHost>
#基于乘客文档的Apache部分
服务器名www.my-ruby-app-host.com
# !!! 确保将DocumentRoot指向“public”!
DocumentRoot/var/www/
通融
别名/my-ruby-app/var/www/my-ruby-app/public
PassengerBaseURI/my ruby应用程序
PassengerAppRoot/var/www/myruby应用程序
#这放松了Apache的安全设置。
允许超越所有
#必须关闭“多视图”。
选项-多视图
使用Apache和Passenger是一个短期解决方案,但我想知道如何在任何情况下做到这一点(长期来看,我想保持与Jruby的兼容性,只需通过Tomcat或Glassfish运行我们的应用程序,这无疑将是另一个Apache配置崩溃;-)你是说你同时拥有两个vHost吗,还是同时只有一个?顺便说一句,Passenger也支持JRuby,如果你想使用JRuby,没有必要使用Tomcat或Glassfish。我的意思是,在这一点上,我只使用vhost配置之一-我的ruby应用程序或ruby应用程序basic,但不能同时使用两者。当它投入生产时,还有其他vhost需要担心(所有vhost目前只提供静态数据),但这将是唯一的rails应用程序。我不知道关于Jruby和乘客,谢谢你的信息!JRuby已经支持了一年多了。看见那么两个虚拟主机都会给你相同的错误信息?连我的ruby应用程序basic都不能用?