Windows 7 Ultimate 64-разрядная версия / Mongrel / Apache 2.2

#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.