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

Могу ли я передавать HTTPS-трафик с одного порта на другой?

Я делаю proxy_pass в на порте с 80 по 8000 на моем удаленном сервере, а затем переадресация порта с 8000 на 80 с удаленного на мой локальный хост. Это отлично работает, но я бы также хотел сделать это с но похоже требуется действующий сертификат для передачи трафика.

Есть ли способ для моего удаленного сервера просто перенаправить трафик с порта 443 на 8443 (а затем я перенаправлю удаленный 8443 на локальный 443). Затем прекратите на моей машине разработки вместо того, чтобы делать это на удаленном сервере?

Мой удаленный запуск и мой локальный хост работает .

Хотя у nginx, вероятно, есть сторонний модуль для работы с необработанными TCP-соединениями, я почти уверен, что по умолчанию все должно быть либо HTTP, либо завершенным HTTPS. Думаю, в вашей ситуации я бы сделал переадресацию портов на уровне сети:

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 443 -j REDIRECT --to-port 8443

Вы можете просто позволить nginx обрабатывать SSL и перенаправлять на порт 8000 на внутреннем сервере. Это означает, что nginx является точкой доступа SSL, и между nginx и серверной частью нет SSL.

Если вы просто хотите передать TCP-трафик, HAProxy - хороший кандидат. Простая установка и простая настройка. HAProxy может балансировать нагрузку TCP, а также HTTP-трафик.

это запись для HTTP-трафика на Ubuntu должно вас начать. Измените режим на TCP для балансировки нагрузки необработанного TCP.

Вероятно, лучший вариант - сделать так, как говорит @ cperrin88. Но если вы действительно не хотите расшифровывать https на своем nginx, вы можете просто перенаправить его как трафик TCP, а затем расшифровать его позже на бэкэнде.

Nginx по умолчанию не поддерживает TCP-прокси, но вы можете использовать этот модуль. nginx_tcp_proxy_module