LINUX.ORG.RU

NGINX как реверс-прокси с SSL. SSL_ERROR_RX_RECORD_TOO_LONG + не работают относительные URL.

 , , , ,


0

2

Привет всем! Я имею фронтэнд на Vue + Webpack Dev-server и бэкенд на Node.js +Express, работающих на портах 8080 и 3000 соответственно. Для того что бы добавить поддержку SSL я использую в качестве реверс-прокси NGINX + Cerbot со следующей конфигурацией - https://gist.github.com/sergey-prosvirnin/0fb8c37a38fdbe024d61b7705fd73978

Моя проблема заключается, что когда я хочу обратиться к бэкенду, например для сброса пароля по ссылке вида http://liga.is:3000/static/user/auth/local/reset-password-set-new-one?code=XXX я получаю ошибку браузера SSL_ERROR_RX_RECORD_TOO_LONG (Firefox), но если я сброшу куки и кэш, после перезагрузки всё вновь работает, но проблема повторяется вновь и вновь.

Так же я заметил, что все изображения с относительным путем /static/img/*** перестают работать, когда работают через NGINX.

Всех выше этих вышеизложенных проблем нет, когда я не использую NGINX.

Сайт с проблемой - https://vk.cc/awbpv5

Видео с проблемой №1 - https://youtu.be/l7Zb2Ux3Zw8 Видео с проблемой №2 - https://youtu.be/WS6EAwWV35o

Репозиторий с кодом проекта - https://github.com/HabitRPG/habitica

Ответ на: комментарий от BizonPC

Ну вообще любой разработчик должен знать что такое 0.0.0.0 и как работают сокеты. Я конечно понимаю, что в мире JS понимать что ты пишешь не принято, но если начать немного, то очень многие вопросы отпадут.

xpahos ★★★★★ ()

я получаю ошибку браузера SSL_ERROR_RX_RECORD_TOO_LONG

Признак того, что http запрос идёт на https. Собственно http://liga.is:3000. В конфиге :3000 не указан, по этому что там не понятно.

Так как правильно сделать?

Зависит от того, что тебе нужно. Если бекэнд на том же компе, то

proxy_pass http://localhost:8080;

atrus ★★★★★ ()
server {

    if ($host = liga.is) {

      return 301 https://$host$request_uri;
      } # managed by Certbot

      listen 80;

      server_name liga.is;
      return 404; # managed by Certbot
    }


Что это за кабздец?

server {
    listen 80;
    server_name liga.is;
    rewrite (.*) https://liga.is$1 permanent;
}
server {
    listen 80 default_server;
    return 404;
}

drull ★☆☆☆ ()