nginx не делает перенаправление

ВСем привет. У меня есть nginx который я тщетно уже полдня пытаюсь настроить на проксирование запросов. Есть 2 сервера с api и логикой сайта. они должны быть за nginx-ом. Я делаю на стороне nginx в папке /etc/nginx/sites-available/domain.ru запись следующего вида

server {
    listen 443 ssl;
    listen [::]:443;
    ssl_sertificate /etc/letsencrypt/live/domain.ru/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/domain.ru/privkey.pem;
    server_name domain.ru;

    root /var/www/html;

    location / {
        proxy_pass http://localhost:8282;
    }
}

На localhost:8282 находится сервер с сайтом.

И так же у меня есть поддомен api.domain.ru и для него я делаю отдельный файл в /etc/nginx/sites-available/api.domain.ru со следующим содержимым:

server {
        listen 443 ssl;
        listen [::]:443;
        ssl_sertificate /etc/letsencrypt/live/domain.ru/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/domain.ru/privkey.pem;
        server_name api.domain.ru;
    
        root /var/www/html;
    
        location / {
            proxy_pass http://localhost:8383;
        }
    }

А на 8383 порту у меня второй сервер уже с api к которму иногда редиректит с порта 8282.

Когда при таких настройках я пытаюсь подключиться к domain.ru из браузере, то получаю ошибку 521 от cloudflare(на котором у меня dns-ы).

Дополнительные условия:

  • У меня закомментированы все строчки в /etc/nginx/sites-available/default
  • Через ufw открыты порты 8282, 8383, 443, 80
  • На роутере естесственно настроено перенаправление
  • Если раскомментировать в /etc/nginx/sites-available/defualt блок server и добавить в location / строку proxy_pass http://localhost:8282; (только для domain.ru) при условии что в строке listen находится 80 а не 443, то nginx перекидывает на 8282 и сайт работает, но мне нужно чтобы было 443 и отдельные файлы для блоков server так как если добавлять listen 443 в нескольких блоках server файла default то nginx ругается на duplicate directive listen 443 и не получается установить сертификаты для всех поддоменов(хотя я специально сделал wildcard сертификат).
  • В Cloudflare есть ресурсная запись для api.domain.ru и для domain.ru

Чарoдеимастера, хэлп, не могу двигаться дальше в обучении поку не настрою nginx, спасайте))


Ответы (0 шт):