Рейтинг:0

502 неверный шлюз nginx на поддомене

флаг gb

У меня есть свежая капля под управлением Ubuntu 20.04. Я использую этот сервер только для размещения своего API, поэтому я пытаюсь перенаправить его на api.example.com. Проблема в том, что когда я посещаю https://api.example.com я получил 502 Неверный шлюз однако, когда я посещаю http://example.com, я получаю страницу приветствия nginx. Я уже перезапустил nginx и запустил это sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/ однако я все еще получаю сообщение об ошибке. Я также зарегистрировал api.example.com, и он перенаправляет на https, поэтому я немного запутался в этой проблеме. Журналы ошибок nginx показывают:

21.11.2021, 03:31:57 [ошибка] 8737#8737: *25 connect() не удалось (111: неизвестная ошибка) при подключении к восходящему каналу, клиент: мой ip, сервер: api.example.com, запрос: " GET /favicon.ico HTTP/1.1», восходящий поток: «http://127.0.0.1:3001/favicon.ico», хост: «api.example.com», реферер: «https://api.example.com». /". 

У меня также есть мой сервер, работающий на порту 3001.

Моя конфигурация nginx:

    сервер {
      слушать 80;
      слушать [::]:80;
    
      имя_сервера api.example.com;
      
      место расположения / {
    proxy_pass http://localhost:3001;
    прокси_http_версия 1.1;
    proxy_set_header Обновить $http_upgrade;
    proxy_set_header Соединение «обновление»;
    proxy_set_header Хост $host;
    proxy_cache_bypass $http_upgrade;
  }

    слушать [::]:443 ssl ipv6only=on; # под управлением Certbot
    слушать 443 ssl; # под управлением Certbot
    ssl_certificate /etc/letsencrypt/live/api.exmaple.com/fullchain.pem; # под управлением Certbot
    ssl_certificate_key /etc/letsencrypt/live/api.exmaple.com/privkey.pem; # под управлением Certbot
    включить /etc/letsencrypt/options-ssl-nginx.conf; # под управлением Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # под управлением Certbot
    }
    
    сервер {
        если ($ host = api.example.com) {
            вернуть 301 https:$host$request_uri; 
        }
    
        слушать 80;
        слушать [::]:80;
    
        имя_сервера api.example.com;
            вернуть 404;
        
    }

Также я не использую cloudflare, поэтому не думаю, что это проблема DNS. Любая помощь будет оценена по достоинству.

djdomi avatar
флаг za
я не уверен, но оба сервера работают одинаково, и nginx -t не должен работать, потому что он выглядит как отсутствующий серверный блок. почему вы слушаете http 80 в блоке ssl, но определяете то же самое ниже?
user avatar
флаг gb
Второй блок сервера был сгенерирован certbot.
djdomi avatar
флаг za
из-за того, что я нахожусь на своем мобильном телефоне с ограниченными возможностями, попробуйте это https://pastebin.ccb-net.it/?228f82a007d63498#BQEup56ZyzoJyku7qwYmQavMMn8dtTp7b3XAc7kQcUCH - это делает конфигурацию более понятной для чтения

Ответить или комментировать

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