Рейтинг:0

Обратный прокси-сервер NGINX вверх по течению не подключается к определенному порту

флаг co

Я пытаюсь получить доступ к одному из внутренних серверов, но получаю следующую ошибку:

27 # 27: * 21653 connect () не удалось (111: соединение отклонено), в то время как подключение к апстриму, клиент: 84.255.55.25, сервер: premium.maltacraft.net, запрос: "GET / HTTP/1.1", восходящий поток: "http://172.28.0.3:37200/", хост: "premium.maltacraft.net"

У меня есть стек для создания докеров, как показано ниже (для простоты некоторые сервисы отредактированы):

Сервисы:
  nginx-вход:
    изображение: nginx: последний
    Ведение журнала:
      драйвер: "json-файл"
      параметры:
        максимальный размер: "50м"
        max-файл: "10"
    перезапуск: если не остановлен
    порты:
      - "80:80"
      - "443:443"
    тома:
      - "./nginx-ingress/nginx.conf:/etc/nginx/nginx.conf:ro"
      - "./nginx-вход/dhparam.pem:/etc/ssl/dhparam.pem:ro"
      - "./nginx-вход/сайты-доступны:/etc/nginx/сайты-доступны:ro"
      - "./nginx-вход/сайты-включены:/etc/nginx/сайты-включены:ро"
      - "./nginx-вход/webroot:/var/www"
      - "/etc/letsencrypt:/etc/letsencrypt:ro"
    сети:
      - мультикрафт
      - wp_maltacraft

сети:
  мультикрафт:
  wp_maltacraft:

Это мой файл nginx.conf (довольно простой):

пользователь nginx;
рабочие_процессы авто;

error_log /var/log/nginx/error.log уведомление;
pid /var/run/nginx.pid;


События {
    worker_connections 1024;
}


http {
    включить /etc/nginx/mime.types;
    default_type application/octet-stream;

    log_format main '$remote_addr - $remote_user [$time_local] "$request" '
                      '$статус $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    журнал_доступа /var/log/nginx/access.log основной;

    отправить файл включен;
    #tcp_npush включен;

    keepalive_timeout 65;

    #gzip включен;

    включить /etc/nginx/sites-enabled/*.conf;
}

Теперь у меня есть 2 сайта, которые подключаются к серверу Apache: Vanilla и Premium. Ванильный работает, и вы можете увидеть, как он работает здесь: https://vanilla.maltacraft.net/

но Премиум-нет, как видно здесь: https://premium.maltacraft.net/

vanilla.maltacraft.net.conf:


восходящая ваниль {
    сервер мультикрафт:38200;
}

сервер {
    слушать 443 ssl;
    слушать [::]:443 ssl;
    имя_сервера vanilla.maltacraft.net;
    server_tokens отключены;
    ssl_certificate /etc/letsencrypt/live/vanilla.maltacraft.net/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/vanilla.maltacraft.net/privkey.pem;

    ssl_ciphers

    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_prefer_server_ciphers включен;
    ssl_session_cache встроенный: 1000 общий: SSL: 10 м;
    ssl_session_timeout 5 м;
    add_header Strict-Transport-Security "max-age=63072000";
    add_header 'X-Frame-Options' 'SAMEORIGIN';
    add_header 'X-XSS-защита' '1; режим=блокировать';
    add_header 'X-Content-Type-Options' 'nosniff';
    add_header 'Политика реферера' 'без реферера';
    ssl_dhparam /etc/ssl/dhparam.pem;

    место расположения / {
        proxy_read_timeout 3600;
        прокси_пароль http://ванильный;
        proxy_set_header Хост $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $ схема;
        proxy_set_header X-Forwarded-Ssl включен;
    }
}

премиум.maltacraft.net.conf:


премия вверх по течению {
    сервер мультикрафт:37200;
}

сервер {
    слушать 443 ssl;
    слушать [::]:443 ssl;
    имя_сервера premium.maltacraft.net;
    server_tokens отключены;
    ssl_certificate /etc/letsencrypt/live/premium.maltacraft.net/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/premium.maltacraft.net/privkey.pem;

    ssl_ciphers

    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_prefer_server_ciphers включен;
    ssl_session_cache встроенный: 1000 общий: SSL: 10 м;
    ssl_session_timeout 5 м;
    add_header Strict-Transport-Security "max-age=63072000";
    add_header 'X-Frame-Options' 'SAMEORIGIN';
    add_header 'X-XSS-защита' '1; режим=блокировать';
    add_header 'X-Content-Type-Options' 'nosniff';
    add_header 'Политика реферера' 'без реферера';
    ssl_dhparam /etc/ssl/dhparam.pem;

    место расположения / {
        proxy_read_timeout 3600;
        прокси_пасс http://премиум;
        proxy_set_header Хост $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $ схема;
        proxy_set_header X-Forwarded-Ssl включен;
    }
}

Если я изменю восходящий порт Premium (37200) на Vanilla (38200), он будет работать нормально и покажет мне веб-сайт Vanilla. Но я хочу, чтобы он показывал сайт Premium.

На обоих веб-сайтах сгенерированы и работают SSL-сертификаты, и их символическая ссылка была сгенерирована для обоих из них (поскольку они оба отображаются с одинаковой конфигурацией в сайты с поддержкой папка)

Любая идея, что можно сделать, чтобы решить эту проблему? Или, может быть, для отладки

Рейтинг:0
флаг co

Проблема заключалась в том, что внутренний сервер пытался прослушивать локальный хост (127.0.0.1), а не 0.0.0.0. Поменял и теперь работает

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

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