Apache + Mongrel Cluster = Неправильная конфигурация сервера! - PullRequest
1 голос
/ 14 августа 2010

Я пытаюсь запустить Ruby on Rails на Windows 2003 Server. Я установил сервис Mongrel и Apache (и RoR и т. Д.).

Когда я работаю с приложением, используя только Mongrel, все получается идеально.

Итак, теперь я дошел до конфигурации Apache ... Видимо, я не могу понять, что это правильно. Когда я захожу на мои страницы, мне возвращается правильный HTML, но он возвращается с Content-Type, установленным в text / plain вместо html или xhtml ... Кроме того, если я пытаюсь добраться до одной из страниц css, получить 500 Внутренняя ошибка сервера (возвращается как HTML, возвращается с text / plain Content-Type).

Вот мой файл виртуального хоста (любая помощь будет ОЧЕНЬ, ОЧЕНЬ, ОЧЕНЬ ОЧЕНЬ признательна!):

NameVirtualHost *:8080


#Proxy balancer section (create one for each ruby app cluster)
<Proxy balancer://myapp_cluster>
  Order allow,deny
  Allow from all
  BalancerMember http://rails.localdomain.com:3010
  #BalancerMember http://myapp:3011
</Proxy>




#Virtual host section (create one for each ruby app you need to publish)
<VirtualHost *:8080>
  ServerName rails.localdomain.com
  DocumentRoot c:/www/app/public/

  <Directory c:/www/app/public/ >
      Options Indexes FollowSymLinks MultiViews
      AllowOverride All
      Order allow,deny
      allow from all
  </Directory>

  ProxyRequests Off
  ProxyPass / balancer://myapp_cluster
  ProxyPassReverse / balancer://myapp_cluster
  ProxyPreserveHost On
  #SetOutputFilter INFLATE;DEFLATE
  #SetOutputFilter proxy-html

  #log files
  ErrorLog c:/www/log/app_error.log
  # Possible values include: debug, info, notice, warn, error, crit,
  # alert, emerg.
  LogLevel warn
  CustomLog c:/www/log/app_access.log combined

  #Rewrite stuff
   RewriteEngine On

  # Check for maintenance file and redirect all requests
  RewriteCond %{DOCUMENT_ROOT}/system/maintenance.html -f
  RewriteCond %{SCRIPT_FILENAME} !maintenance.html
  RewriteRule ^.*$ /system/maintenance.html [L]

  # 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://myapp_cluster%{REQUEST_URI} [P,QSA,L]


    # Deflate
  #AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml application/xhtml+xml text/javascript text/css
  #BrowserMatch ^Mozilla/4 gzip-only-text/html
  #BrowserMatch ^Mozilla/4\.0[678] no-gzip
  #BrowserMatch \\bMSIE !no-gzip !gzip-only-text/html

</VirtualHost>

Ответы [ 2 ]

1 голос
/ 14 августа 2010

ОК, вот часть ответа. В этой части рассматриваются файлы .css и .js. Очевидно, это относится к конечным слешам ... Мне пришлось удалить некоторые слэши и добавить некоторые другие ...

Удалены:

  DocumentRoot c:/www/app/public

  <Directory c:/www/app/public >

Добавлено:

  ProxyPass / balancer://myapp_cluster/
  ProxyPassReverse / balancer://myapp_cluster/

Теперь я могу просто извлекать файлы .css и .js ...

ОДНАКО: У меня все еще есть проблема с тем, что Apache НЕ посылает правильные заголовки. Прямо внутри HTML-кода, который я возвращаю, у меня есть это:

Но все равно возвращается текст / обычный текст (тип по умолчанию, заданный в httpd.conf).

ПОЖАЛУЙСТА, если у кого-нибудь есть идеи, дайте мне знать !!!!!

Спасибо

0 голосов
/ 14 августа 2010

Я настоятельно рекомендую хост Linux для RoR.Единорог и Пассажир - намного лучшие инструменты, чем кластеры беспородных.См. сообщение в блоге github об этом.

...