Вы используете стандартные порты 80 и 443 по-разному.Эти порты являются точками входа на ваш сервер, и их не рекомендуется использовать в качестве портов, работающих внутри обратных прокси-серверов.
При использовании обратных прокси-серверов мы сопоставляем другие порты либо с портом 80, либо с портом 443, поэтому они могут быть общедоступными.доступны через HTTP или HTTPS соответственно.
Если мы хотим получить доступ ко всему по HTTPS, нам потребуется сопоставить приложения реагирования и узла с 443 через обратный прокси-сервер и перенаправить весь доступ HTTP, идущий к HTTPS.
Итак, как предложенные шаги для исправления:
1) Используйте разные порты, скажем, 3000 для реагирования и 3001 для узла.
2) Настройте блок сервера, прослушивающий порт 80 для перенаправления наhttps, как return 301 https://<yourdomainhere.com>
3) Удалите ssl
строк в блоке сервера вашего порта 80.Используйте их только внутри блоков сервера, прослушивая порт 443
4) Измените свой блок upstream {}
, чтобы использовать порт 3001 для приложения узла.Сохраните использование proxy_pass http://backend;
, все в порядке.
5) Добавьте новый блок местоположения с proxy_pass http://localhost:3000;
внутри блока сервера, который прослушивает порт 443. Теперь у вас будет два блока местоположения, одиндля реакции и один для узла.
6) Определите server_name
для каждого блока с помощью yourdomainhere.com
, поскольку IP-адреса, как правило, не разрешено выдавать с SSL-сертификатами.Я предлагаю использовать другой блок сервера для перенаправления IP-адреса в ваш домен с префиксом HTTPS
7), чтобы проверить ошибки, а затем перезапустить nginx.