РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
⊗dcNxPxPp 10 of 13 menu
◀ ▶

Проксирование в Docker

Проксирование направляет запрос на имя сервиса приложения и его порт. Nginx принимает соединение на 80 внутри копии, а директива proxy_pass передаёт его на http://app:8000 во внутренней сети Compose.

Страница приложения лежит в app/index.html и содержит hello:

<!DOCTYPE html> <html lang="ru"> <head> <meta charset="UTF-8"> <title>page</title> </head> <body> hello </body> </html>

Блок server слушает 80 и проксирует корень на приложение. Содержимое default.conf:

server { listen 80; location / { proxy_pass http://app:8000; } }

Сервис web на nginx:1.30 монтирует конфиг и публикует 8080:80. Сервис app без ports отдаёт каталог app через http.server. Файл compose.yaml:

services: web: image: nginx:1.30 ports: - "8080:80" volumes: - "$PWD/default.conf:/etc/nginx/conf.d/default.conf" app: image: python:3.14 volumes: - "$PWD/app:/app" working_dir: /app command: ["python", "-m", "http.server", "8000", "--bind", "0.0.0.0"]

После подъёма в фоне откроем localhost:8080 и увидим текст из приложения, хотя его порт на компьютер не выведен. Запуск проекта:

docker compose up -d

Соберите пару land и app с проксированием корня на 8000 и ответом land на порту 8091 компьютера.

Откройте опубликованный адрес в браузере и сравните текст с файлом в каталоге приложения.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить