Я делаю proxy_pass
в nginx на порте с 80 по 8000 на моем удаленном сервере, а затем переадресация порта с 8000 на 80 с удаленного на мой локальный хост. Это отлично работает, но я бы также хотел сделать это с https но похоже nginx требуется действующий сертификат для передачи трафика.
Есть ли способ для моего удаленного сервера просто перенаправить трафик с порта 443 на 8443 (а затем я перенаправлю удаленный 8443 на локальный 443). Затем прекратите ssl на моей машине разработки вместо того, чтобы делать это на удаленном сервере?
Мой удаленный запуск убунту и мой локальный хост работает osx.
Хотя у 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