Назад | Перейти на главную страницу

Настройте обратный прокси NGINX перед веб-сервером Apache (для включения веб-сокетов)

По рекомендации участника форума stackoverflow, я задаю следующий вопрос на этом форуме, где он, по-видимому, подходит лучше (я новичок в этом форуме).

Что именно хочу:

Конкретная страница моего веб-сайта должна загружать свое содержимое (структуру html, представляющую окно чата) с веб-сервера, но ее функции чата, представленные в виде скрипта PHP Ratchet на стороне сервера (размещенного на том же веб-сервере), должны работать. через соединение WebSocket.

Другими словами, для этой конкретной страницы соединения с веб-сервером и WebSocket должны работать одновременно, в то время как у меня есть только один сервер Apache (2.4) на основе общего хостинга без корневого доступа. И, как уже говорилось, и приложение чата, запрограммированное в Ratchet, и HTML-страница веб-сайта присутствуют на веб-сервере.

При тестировании на моем локальном хосте это работало очень хорошо. Однако при попытке развернуть его на моем веб-сервере у меня возникли проблемы, и, похоже, мне нужно было использовать обратный прокси NGINX перед моим веб-сервером или аналогичный (http://socketo.me/docs/deploy). Возможно ли такое развертывание с учетом условий моего хостинга, или мне нужно переключиться на другой тип хостинга? Я начал с настройки NGINX, но проблема в том, что я не могу изменить порт, который прослушивает мой веб-сервер Apache, учитывая, что у меня нет корневого доступа. Я чувствую, что для этой цели мне нужно изменить тип хостинга ?

Один из аспектов этого вопроса можно резюмировать так: можно ли разместить обратный прокси-сервер между клиентом и браузером для целей веб-сокета при наличии веб-сервера на основе общего хостинга без корневого доступа?

Большинство планов общего хостинга позволяют принимать соединения только через порты 80 (HTTP) и 443 (HTTPS) и не дают вам доступа к терминалу.

Предполагая, что это так, вы не можете запустить сервер Ratchet WebSocket, поскольку он требует доступа к терминалу и лучше всего будет размещен на порту, отличном от HTTP.

Я рекомендую вам запускать веб-сервер и сервер WebSocket по плану выделенного хостинга, где у вас будет доступ к терминалу и возможность использовать любые порты, которые вам нравятся.