сокет.ввод-вывод перестает работать, если переписать соединение из htaccess

#.htaccess #websocket #socket.io

#.htaccess #websocket #socket.io

Вопрос:

Работает:

Я работаю над socket.io , и просто скройте номер порта и перенаправьте домен на домен:{порт}

У меня 3 домена, все работают с 2 лет, и вдруг 1 сокет.io перестает принимать, если URL поступает из rewrite.

СЕРВЕР 1, example1.com /_____ переписать с помощью htaccess

 .htaccess on server_1
RewriteRule ^socket2/(.*)$ ws://example_2.com:3000/$1  [P,QSA,L] #Working
RewriteRule ^socket3/(.*)$ ws://example_3.com:3000/$1  [P,QSA,L] #Not working

# Direct URL Working: ws://example_3.com:3000
  

На сервере 3, example_3.com,

Если я ввел полный URL-адрес «ws:// example_3.com:3000», он работает, если я напишу .htaccess правила перезаписи на server1, то он не работает.

Мои диагнозы на server3:

  • Сокет.io работает на 100% нормально.
  • Сокет подключается и отключается через миллисекунды, если URL из htaccess перезаписать

Мне нужна помощь в выяснении точной проблемы и местоположения. Я просто хочу скрыть номер порта и переписать wss:// в ws://

Комментарии:

1. На самом деле это не классическая перезапись, а реализованный вами прокси. Поскольку оба правила идентичны, разницы в поведении нет. Единственное, что может иметь разное поведение, это два сервера example_2 и example_3, но это не имеет никакого отношения к вашей перезаписи. Вам нужно будет начать отладку: так что идите, погрузитесь в файлы журналов как этого сервера перезаписи, так и внутренних серверов, чтобы найти первый намек на то, в чем фактическая причина.

2. в журнале apache и журналах сокетов ничего нет, также я не реализовал никакого прокси. его просто переписать и базовый socket.io

3. Я думаю, вы хотите начать читать документацию к используемому вами инструменту. Особенно объяснение P флага, который вы используете в своем правиле. «P» означает «прокси» …