Я пытаюсь настроить обратный прокси-сервер для экземпляра Cloud9, работающего локально на моем сервере с помощью Apache. У меня следующая установка:
<VirtualHost *:80>
ProxyPreserveHost On
ProxyPass / http://localhost:3131/
ProxyPassReverse / http://localhost:3131/
ServerAdmin cloud9@mydomain.org
ServerName cloud9.mydomain.org
</VirtualHost>
Я также попытался изменить порядок директив, чтобы сначала были ServerAdmin и ServerName. Пока, если я ударил http://cloud9.mydomain.org, Я получаю сообщение об ошибке браузера о невозможности подключения. В Apache access.log или error.log ничего не регистрируется. Я думаю, что мне не хватает какой-то части, но я еще не уверен, что это за недостающая часть. Я также не знаю, в правильном ли я месте ищу журналы. Процесс Cloud9 был запущен и, похоже, работает на порту 3131.
Я не планирую запускать Cloud9 широко. Конечная цель, к которой я стремлюсь, состоит в том, чтобы в конечном итоге получить Cloud9, размещенный через SSL, с использованием некоторой аутентификации, может быть, базовой аутентификации, но я подумал, прежде чем я начал добавлять SSL и аутентификацию в микс, мне, вероятно, сначала нужно заставить работать основы.
Обновить Выход apachectl -S
:
# apachectl -S
VirtualHost configuration:
wildcard NameVirtualHosts and _default_ servers:
*:80 is a NameVirtualHost
default server www.mydomain.org (/etc/apache2/sites-enabled/000-default:1)
port 80 namevhost www.mydomain.org (/etc/apache2/sites-enabled/000-default:1)
port 80 namevhost wp.mydomain.org (/etc/apache2/sites-enabled/001-wordpress:1)
port 80 namevhost blog.mydomain.org (/etc/apache2/sites-enabled/001-wordpress:22)
port 80 namevhost cloud9.mydomain.org (/etc/apache2/sites-enabled/003-cloud9:1)
Syntax OK
Выход curl -I cloud9.mydomain.org
:
curl: (6) Couldn't resolve host 'cloud9.mydomain.org'
Выход curl -I localhost:3131
:
HTTP/1.1 403 Forbidden
Content-Type: text/plain
Content-Length: 9
Set-Cookie: cloud9.sid.3131=bqk4zxV4ETq9rrO79E4mkJn9.YW7gMDRCsOO95utQJy1mYm8LfTfZC%2F7Fx59DeFRFDpU; path=/; expires=Thu, 19 Sep 2013 02:07:41 GMT; httpOnly
Date: Wed, 18 Sep 2013 22
Когда я пытаюсь зайти на сайт извне с помощью Chrome, я получаю:
Ой! Google Chrome не может найти cloud9.mydomain.org
Возможно, вы имели в виду: mydomain.org
Какую страницу по умолчанию отображает Chrome, когда не может подключиться. Опять же, я не вижу никаких ошибок в access.log или error.log, если только по какой-то причине он не регистрируется в одном и том же месте. Я иду в /var/log/apache2
и делать ls -lart
чтобы убедиться, что я вижу последний файл журнала.
Не очень красиво, но это работает как для HTTP, так и для SSL без изменений в Cloud9.
Необходимый модуль Apache: mod_proxy_wstunnel (Я думаю, доступно в Apache 2.4, а также доступны руководства по сборке для Apache 2.2.x, например http://www.amoss.me.uk/2013/06/apache-2-2-websocket-proxying-ubuntu-mod_proxy_wstunnel/).
ProxyPreserveHost On
RewriteEngine On
RewriteCond %{QUERY_STRING} transport=polling
RewriteRule ^(.*)smith.io(.*) /polling [P]
<Location />
ProxyPass http://localhost:3131/
ProxyPassReverse http://localhost:3131/
</Location>
<Location /smith.io>
ProxyPass ws://localhost:3131/smith.io
ProxyPassReverse ws://localhost:3131/smith.io
</Location>
<Location /polling>
ProxyPass http://localhost:3131/smith.io/server
ProxyPassReverse http://localhost:3131/smith.io/server
</Location>
<VirtualHost *.80>
- измените это на <VirtualHost *:80>
.
Это может быть все, что нужно, но если нет, можете ли вы предоставить результат apachectl -S
?