Rails на Apache для Windows - HOWTO - PullRequest
       0

Rails на Apache для Windows - HOWTO

3 голосов
/ 11 ноября 2011

Этот вопрос не задавался с момента выхода Rail 3.0 (или я не могу его найти):

Как запустить приложение Rails 3+ на Apache в Windows (WAMP)? Это беспородный вариант? Мне кажется, не оптимально иметь Apache в качестве прокси, а затем другой сервер. Пассажир не существует в Windows.

Я надеюсь получить от вас ссылку на волшебный установочный пакет и фрагмент из файла httpd.conf, который перенаправит его в приложение rails.

Ответы [ 3 ]

2 голосов
/ 12 ноября 2011

Преимущество использования apache (или nginx) в качестве прокси-сервера заключается в том, что он может распределять нагрузку между различными экземплярами mongrel (или тонкими). Таким образом, вам придется запустить три экземпляра (службы) 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, и поэтому не зависит от платформы. В тестах показано, что TorqueBox работает невероятно хорошо, и на самом деле любой должен серьезно подумать о переходе на него.

Надеюсь, это поможет.

0 голосов
/ 14 декабря 2013

Я понимаю, что это очень старый вопрос, но я только что нашел очень простое решение, которое не требует установки какого-либо нового программного обеспечения.Для этого требуется всего лишь несколько флагов в httpd.conf.Это подробно описано в этой статье на editrocket.com:

1002 *http://editrocket.com/articles/ruby_apache_windows.html
0 голосов
/ 11 ноября 2011

Как насчет InstantRails, вы пробовали это? http://rubyforge.org/projects/instantrails/

Instant Rails - это универсальное решение среды выполнения Rails, содержащее Ruby, Rails, Apache и MySQL, все они предварительно сконфигурированы и готовы к запуску. Никакого установщика, вы просто помещаете его в каталог по вашему выбору и запускаете. Он не изменяет вашу системную среду.

Как насчет использования виртуальной машины, например, Vagrant: http://vagrantup.com/docs/getting-started/index.html

Или, возможно, JRubyStack.

Насколько я знаю, единственный способ развернуть рельсы в Windows - это использовать apache + mongrel. Удачи!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...