#ruby-on-rails #windows #apache #mongrel
#ruby-on-rails #Windows #apache #mongrel
Вопрос:
Я настроил приложение Ruby on Rails на 64-разрядном ПК с Windows 7 Ultimate.
для запуска программы rails используются 3 экземпляра Mongrel, и они сбалансированы по нагрузке с помощью Apache 2.2.
Соответствующий раздел моего файла httpd.conf выглядит следующим образом:
---------- httpd.conf
#define mongrel cluster
<proxy balancer://mongrelcluster>
BalancerMember http://127.0.0.1:3001
BalancerMember http://127.0.0.1:3002
BalancerMember http://127.0.0.1:3003
</proxy>
Listen 3009
#forward requests to mongrel cluster
<virtualhost *:3009>
ProxyPass / balancer://mongrelcluster/
ProxyPassReverse / balancer://mongrelcluster/
ProxyPreserveHost on
</virtualhost>
----------- httpd.conf
Я могу получить доступ к localhost на портах 3001, 3002 и 3003 по отдельности без проблем.
Когда я пытаюсь получить доступ к localhost на порту 3009 через Apache, я получаю сообщение «Служба временно недоступна Сервер временно не может обслуживать ваш запрос из-за простоя в обслуживании или проблем с пропускной способностью. Пожалуйста, повторите попытку позже «. сообщение об ошибке.
После проверки журналов ошибок Apache:
---- Error log
[Tue Oct 04 12:46:37 2011] [notice] Child 6168: Child process is running
[Tue Oct 04 12:46:38 2011] [notice] Child 6168: Acquired the start mutex.
[Tue Oct 04 12:46:38 2011] [notice] Child 6168: Starting 64 worker threads.
[Tue Oct 04 12:46:38 2011] [notice] Child 3052: Released the start mutex
[Tue Oct 04 12:46:39 2011] [notice] Child 3052: All worker threads have exited.
[Tue Oct 04 12:46:39 2011] [notice] Child 3052: Child process is exiting
[Tue Oct 04 12:46:39 2011] [notice] Child 6168: Starting thread to listen on port 80.
[Tue Oct 04 12:46:39 2011] [notice] Child 6168: Starting thread to listen on port 3009.
[Tue Oct 04 12:46:46 2011] [error] (OS 10013)An attempt was made to access a socket in a way forbidden by its access permissions. : proxy: HTTP: attempt to connect to 127.0.0.1:3001 (127.0.0.1) failed
[Tue Oct 04 12:46:46 2011] [error] ap_proxy_connect_backend disabling worker for (127.0.0.1)
[Tue Oct 04 12:46:46 2011] [error] (OS 10013)An attempt was made to access a socket in a way forbidden by its access permissions. : proxy: HTTP: attempt to connect to 127.0.0.1:3002 (127.0.0.1) failed
[Tue Oct 04 12:46:46 2011] [error] ap_proxy_connect_backend disabling worker for (127.0.0.1)
[Tue Oct 04 12:46:46 2011] [error] (OS 10013)An attempt was made to access a socket in a way forbidden by its access permissions. : proxy: HTTP: attempt to connect to 127.0.0.1:3003 (127.0.0.1) failed
[Tue Oct 04 12:46:46 2011] [error] ap_proxy_connect_backend disabling worker for (127.0.0.1)
---- Error log
Журнал ошибок Apache показывает, что соединение с экземплярами Mongrel каким-то образом не удалось.
Мне кажется, это проблема с Windows 7, потому что та же настройка отлично работает в системе Windows XP.
Все предложения / советы / решения приветствуются.
Ответ №1:
Я бы посоветовал вам переключиться на Linux или Mac OS X, когда дело доходит до ruby on rails, и попробовать свои силы с Nginx. Это намного надежнее, стабильнее и быстрее. В Rails есть много драгоценных камней, которые очень полезны. Сообщество ruby, честно говоря, просто не заботится о Windows. Дело в том, что эти драгоценные камни не обновляются для Windows и в некоторых редких случаях не созданы для совместимости с Windows. Вы можете попробовать и испачкать руки Ubuntu (которую я использую очень регулярно), а также перейти на nginx или WEBrick, которые поставляются с самой установкой ruby, как вы уже знаете. Таким образом, чтобы извлечь максимум пользы из Ruby on Rails, выход из Windows был бы лучшим вариантом. читать это
Комментарии:
1. Наконец-то найден ответ. Я должен удалить строку «:: 1» из файла windows / system32 / drivers / etc/hosts.