Я использую nginx для обслуживания экземпляра приложения PHP, а также одновременно запускаю приложение Ratchet для прослушивания соединения через веб-сокет. Проблема в том, что оба этих экземпляра используют один и тот же порт (80).
Как мне настроить сервер, чтобы я мог обслуживать оба?
Изменить: Просто вернулся, чтобы увидеть, что вопрос был понижен несколько раз, по понятным причинам, я не задавал вопрос четко. Я прошу прощения за это. Я сделал все должное усердие, хотя. Я постараюсь уточнить, что я спрашивал, возможно, я неправильно понял некоторые аспекты протокола websocket, в этом случае, пожалуйста, исправьте меня:
Я хорошо знаю, что может быть только один процесс, прослушивающий конкретный порт, но у меня действительно есть проблема, связанная с веб-сокетом, насколько я понимаю, запрос веб-сокета начинается с HTTP-рукопожатия, после которого будет механизм «обновить» этот сеанс до определенного порта.
Из того, что я прочитал, кажется, что этот механизм обновления обрабатывается веб-сервером. Итак, как мне настроить nginx для работы с этим процессом?
В общем, единственное, что меня беспокоит при запуске сервера websocket на порте, отличном от 80, - это возможность блокировки порта. Это беспокойство необоснованно? Любой совет, как мне это настроить?
Ответы:
Страшно написанный вопрос, но термин, который я искал, был обратным прокси.
По сути, точно так же, как nginx может пересылать разные запросы нескольким экземплярам веб-приложения на основе пути или имени хоста, он также может быть настроен для «пересылки» запроса на экземпляр сервера websocket. например:
HTTP-запросы
http://hostname
будут обрабатываться на обычной html-странице, а подключение к веб-сокетуwss://hostname/socket
будет перенаправлено экземпляру веб-сокета на том же сервере, который прослушивает порт 8000.источник
proxy_read_timeout
иproxy_write_timeout
предотвращение отключений при неактивности.На сервере не может быть двух разных программ, прослушивающих один и тот же порт / IP-адрес. В противном случае, как трафик будет перенаправлен в Application XYZ, если несколько приложений могут быть связаны с одним и тем же портом?
Вы можете узнать больше о портах от Port (компьютерная сеть)
То, что вам нужно сделать, это один из следующих вариантов:
Ваш брандмауэр просто необходимо настроить в соответствии с тем, что вы настроили.
источник
У вас есть два варианта:
источник