Как настроить ssl чтобы отправлять запросы на backend?
Я смог настроить ssl для своего сайта theta-learn.ru, но теперь я не могу отправлять api запросы на бекенд, сайт расположен на домене https://theta-learn.ru с него отправляются запросы на бекенд, принимаются они на https://theta-learn.ru:3010, но при отправке запроса выдает ошибку
Михаил Казинский, для начала определитесь, какой именно файл у вас работает, а какой только место на диске занимает. Потому что оба файла одновременно работать не могут - в них указаны одинаковые server_name, а в NGINX не может быть двух server{} с одинаковыми server_name.
ошибка вылазит на клиенте? если да, то это естественно, так как твой фронт слушает на порту 443 и проксирует на 3010. А запрос от клиента идет к https://theta-learn.ru:3010/api/ , убирай отсюда порт и запрос придет на сервер, в описанный location /api и так далее.
AUser0, я настраивал по видео и везде настраивали два конфига, при proxy_pass http://theta-learn.ru:3010; выдается та-же самая ошибка, единственное отличие это когда я отправляю запрос с клиента не по https://theta-learn.ru:3010/api/, а по http://theta-learn.ru:3010/api/ начинает ругаться cors о том, что он не может отправлять запросы с защищенного на не защищенный
Михаил Казинский, ошибка CORS означает, что вы в клиенте/браузере обращаетесь на порт 3010.
У вас NGINX не настроен на приём коннектов на порт 3010, он не участвует в коннектах на порт 3010, и бесполезно в нём копаться, добиваясь работы порта 3010.
Разбирайтесь с программой, работающей на порту 3010, это её проблемы.
А что бы NGINX вступил в работу - нужно обращаться на адрес https://theta-learn.ru/api/.
Михаил Казинский, а теперь внимательно посмотрите конфигурацию nginx.
У вас там чёрным по белому в обоих вариантах прописано "Все запросы к https://theta-learn.ru/api/ передавать в http://theta-learn.ru:3010/".
Нужно ну хоть маленько понимать, где и что вы прописываете, и к какому результату это приводит...
AUser0, и что в чем проблема, порт тут причем? Еще раз повторяю, до установки ssl все запросы обрабатывались корректно, запросы ДОХОДИЛИ до своих ендпоинтов. Так причем тут порт
Михаил Казинский, при том, что вы не можете даже решить, по какому протоколу нужно работать с портом 3010, с шифрованием или без. После этого, решите как именно нужно работать с портом 3010 - через NGINX или мимо него. Если через - тогда настраивайте работу без указания порта, тогда через NGINX весь трафик и пойдёт. Если мимо - тогда мучайте backend, что бы именно он с шифрованием и работал. А потом ещё и с CORS будете бороться.
AUser0, выше написано что смена протокола никак не влияет на ошибку, еще раз повторяю бекенд РАБОТАЕТ через NGINX на ПОРТУ 3010, НО без SSL без указания порта он никак не может работать потому что клиент не знает куда отправлять запросы о чем вы говорите , если не указать порт то он будет слушать порт по умолчанию
Михаил Казинский, обращаясь из клиента к порту 3010, вы обращаетесь к backend-у напрямую. Вот его и теребите, это он не отвечает клиенту шифрованием, NGINX тут ни при чём, это backend не работает с шифрованием, почему вы не можете этого понять?