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

Префикс пути в Docker

Префикс пути отдаёт один адрес приложению, а остальной сайт остаётся статическим. Запрос к корню читает файл из /usr/share/nginx/html, а путь с папкой /api/ уходит на app:8000 через proxy_pass с обрезкой префикса.

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

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

Ответ приложения лежит в app/index.html и содержит слово api:

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

Блок location для /api/ заканчивается слэшем в proxy_pass, чтобы приложение видело корень. Содержимое default.conf:

server { listen 80; root /usr/share/nginx/html; index index.html; location / { try_files $uri $uri/ =404; } location /api/ { proxy_pass http://app:8000/; } }

Сервис web монтирует конфиг, каталог site и пару портов 8080 и 80. Сервис app без ports слушает 8000. Файл compose.yaml:

services: web: image: nginx:1.30 ports: - "8080:80" volumes: - "$PWD/site:/usr/share/nginx/html" - "$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 и localhost:8080/api/ и сравним два текста. Запуск проекта:

docker compose up -d

Настройте сервис land с префиксом /data/, статикой hello в корне и ответом data из приложения на порту 8092 компьютера.

Откройте корень и адрес с папкой data и зафиксируйте, какой текст виден в каждом случае.

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