Рейтинг:0

соединение отклонено из вышестоящего html - NGINX

флаг br
CFD

У меня есть html-файл, работающий в док-контейнере с этим URL-адресом: http://localhost:80 Я хочу перенаправить это на другой порт, например http://localhost:8080 с NGINX. У меня есть следующая конфигурация для него:

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

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

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

http {
    включить mime.types;
    отправить файл включен;
    восходящая сеть {
    сервер 127.0.0.1:80;

}

    сервер {
    слушать 8080;
    преобразователь 127.0.0.11;
    автоиндекс выключен;
    
    имя сервера _;
    server_tokens отключены;

    место расположения / {
        proxy_pass http://web;
    }
}
}

но когда я перехожу на http://localhost:8080, я получаю 502 ошибку плохого шлюза, и вот ошибка, которую я получаю через контейнер nginx:

[ошибка] 22#22: *1 connect() не удалось (111: соединение отклонено) при подключении к восходящему каналу, клиент: 172.17.0.1, сервер: _, запрос: "GET / HTTP/1.1", восходящий поток: "http:/ /127.0.0.1:80/", хост: "localhost:8080"

Вот как я запускаю свой докер nginx:

docker run --name nginx -v c:/Users/ds-nginx-conf-main:/etc/nginx -p 8080:8080 -d nginx

вот файл создания докера веб-контейнера или предварительно захватывающего контейнера:

версия: "3.7"

Сервисы:   
    веб:
        сборка: пользовательский интерфейс
        порты:
          - 80:80
        зависит от:
          - апи
    API:
        сборка: приложение
        среда:
          - ПОРТ=80
        порты:
          - 8020:80
    
    тестовое задание:
        строить:        
          контекст: ./
          докерфайл: ./тест/докерфайл
Рейтинг:1
флаг in

Процессы внутри док-контейнера запускаются внутри своего собственного пространства имен.

У каждого контейнера есть собственный виртуальный петлевой интерфейс, который отделен от петлевого интерфейса хоста.

Если вы хотите получить доступ к другому контейнеру изнутри контейнера, вам нужно связать эти контейнеры вместе.

docker run --link othercontainer...

Затем вы можете получить доступ к первому контейнеру из второго контейнера по его имени.

Другие варианты — создать сеть внутри докера, которая используется обоими контейнерами, или заставить оба контейнера использовать хост-сеть (что обычно не рекомендуется, поскольку увеличивает поверхность атаки контейнера).

CFD avatar
флаг br
CFD
Я пытался сделать это, но я получаю эту ошибку: $ docker run --link ds-ai-ocr-main_web_1 --name nginx -v c:/Users/ds-nginx-conf-main:/etc/nginx -p 8080:8080 -d nginx 81c9e792ee939c82e86454252d97dd46b0554fa6b244037fabb842898abd5d36 docker: ответ об ошибке от демона: невозможно установить ссылку на /ds-ai-ocr-main_web_1, так как он не принадлежит к сети по умолчанию.
флаг in
Похоже, ваш первый контейнер был создан с помощью docker-compose. Затем вам нужно перенастроить свой первый контейнер, чтобы использовать внешнюю сеть, которую можно использовать совместно со вторым контейнером.
CFD avatar
флаг br
CFD
Я добавил компоновку докера к вопросу. Я пытаюсь добавить это в состав докера, но получаю сообщение об ошибке: `networks: По умолчанию: внешний: правда`

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

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