Я пытаюсь использовать Faye gem на тонком сервере с Rails в рабочей среде, но я не могу заставить его работать. Я использую apache 2.4, а ws_tunnel также включены прокси-модули. Моя настройка похожа на ниже.Попытка запустить веб-сайт Faye на Apache с использованием прокси
Apache конфигурация
<VirtualHost *:443>
ServerName mysite.example.com
ServerAlias mysite.example.com
DocumentRoot /var/www/html/mysite/current/public
SSLEngine on
SSLCertificateFile "/etc/httpd/conf/keys/ServerCertificate.cer"
SSLCertificateKeyFile "/etc/httpd/conf/keys/example.com.key"
SSLCertificateChainFile "/etc/httpd/conf/keys/CACertificate-1.cer"
RewriteEngine On
SSLProxyEngine On
ProxyRequests off
ProxyPreserveHost on
ProxyPass /faye !
ProxyPassReverse /faye !
ProxyPass/balancer://thinservers/
ProxyPassReverse/balancer://thinservers/
<Proxy *>
Require all granted
</Proxy>
<Location /faye>
ProxyPass ws://localhost:9292
ProxyPassReverse ws://localhost:9292
</Location>
RequestHeader set X_FORWARDED_PROTO 'https'
# Custom log file locations
ErrorLog /etc/httpd/logs/error-unilever.log
CustomLog /etc/httpd/logs/access-unilever.log combined
</VirtualHost>
Faye.ru файл
require 'faye'
Faye::WebSocket.load_adapter('thin')
app = Faye::RackAdapter.new(:mount => '/faye', :timeout => 25)
run app
И я начинаю Фея с помощью следующей команды
rackup faye.ru -E production -s thin
Таким образом, я могу достичь faye.js набрав в браузере следующий URL-адрес.
https://mysite.example.com/faye/faye.js
Но когда я печатаю https://mysite.example.com/faye/, например, я получаю следующий результат
Sure you're not looking for /faye ?<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>500 Internal Server Error</title>
</head><body>
<h1>Internal Server Error</h1>
<p>The server encountered an internal error or
misconfiguration and was unable to complete
your request.</p>
<p>Please contact the server administrator at
[email protected] to inform them of the time this error occurred,
and the actions you performed just before this error.</p>
<p>More information about this error may be available
in the server error log.</p>
</body></html>
что странно, потому что я получаю только «Конечно, вы не ищете/Faye?» в развитии.
Я звоню Фей в application.js, как
client = new Faye.Client("https://mysite.example.com/faye/faye")
И я получаю сообщение об ошибке, как
POST https://mysite.example.com/faye/faye 400 (Bad Request)
Я также попытался использовать протокол WSS в настройках прокси-сервера, а также предоставление мои пути к сертификатам для тонких, чтобы начать с SSL, но ничего не получилось.
Я предполагаю, что это может происходить из-за прокси-сервера или модуля ws_tunnel, потому что, когда я запускаю следующую команду из оболочки на сервере
curl http://localhost:9292
я получаю только «Конечно, вы не ищете/фей? сообщение.
Кто-нибудь пришел на что-то подобное?
Буду признателен, если кто-то может мне помочь.
Заранее благодарен.