自从Rail 3.0问世以来(或者我找不到),这个问题还没有被问到:
如何在Windows(WAMP)上的Apache上运行Rails 3+应用程序? Mongrel是最好的选择吗?将Apache作为代理,然后是另一台服务器,听起来不是最理想的。 Windows上不存在乘客。
我希望从您那里得到的是一个魔法安装包的链接以及httpd.conf文件中的一个片段,该片段会将一个转移到rails应用程序。
答案 0 :(得分:2)
使用apache(或nginx)作为代理的优点是它可以在不同的mongrel(或thin)实例之间进行负载平衡。因此,您必须启动三个mongrel实例(服务)并配置apache来代理这些实例。
将apache配置到不同的mongrel进程非常简单,可以在互联网上找到。以下是httpd-vhosts.conf
的示例(由您的实际应用程序/域和根文件夹替换yourapplication
):
<VirtualHost *:80>
#ServerName 10.200.65.35
#ServerAlias 10.200.65.35
ServerName yourapplication.com
DocumentRoot d:/yourapplication/current/
<Directory c:/yourapplication/current/public/ >
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
# On active les proxy qui sont par défaut désactivés
<Proxy *>
Order allow,deny
Allow from all
</Proxy>
<Proxy balancer://mongrel_cluster>
BalancerMember http://127.0.0.1:4000
BalancerMember http://127.0.0.1:4001
BalancerMember http://127.0.0.1:4002
</Proxy>
ProxyPass / Balancer://mongrel_cluster/
ProxyPassReverse / balancer://mongrel_cluster/
#ProxyReserveHost on
#log files
ErrorLog "/Program Files/Apache Software Foundation/Apache2.2/logs/yourapplication_error.log"
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog "/Program Files/Apache Software Foundation/Apache2.2/logs/yourapplication_access.log" combined
#Rewrite stuff
RewriteEngine On
# Rewrite index to check for static
RewriteRule ^/$ /index.html [QSA]
# Rewrite to check for Rails cached page
RewriteRule ^([^.]+)$ $1.html [QSA]
# Redirect all non-static requests to cluster
RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f
RewriteRule ^/(.*)$ balancer://mongrel_cluster%{REQUEST_URI} [P,QSA,L]
</VirtualHost>
在Windows上部署的另一个非常有前途的替代方法是使用TorqueBox。 TorqueBox是基于JBoss / Jruby的解决方案,因此与平台无关。在benchmarks中显示TorqueBox表现非常好,实际上任何人都应该认真考虑切换到它。
希望这有帮助。
答案 1 :(得分:0)
你试过InstantRails怎么样? http://rubyforge.org/projects/instantrails/
Instant Rails是一站式Rails运行时解决方案,包含Ruby,Rails,Apache和MySQL,所有这些都已预先配置好并可以运行。没有安装程序,只需将其放入您选择的目录并运行即可。它不会修改您的系统环境。
尝试像Vagrant这样的虚拟机:http://vagrantup.com/docs/getting-started/index.html
或者JRubyStack。
据我所知,在Windows中部署rails的唯一方法是使用apache + mongrel。祝你好运!
答案 2 :(得分:0)
我意识到这是一个非常古老的问题,但我刚刚找到了一个非常简单的解决方案,它不涉及安装任何新软件。它只需要httpd.conf中的几个标志。这篇文章详细介绍了editrocket.com: