13.07.2026
nginx proxy docker
Как настроить nginx proxy с помощью Docker
Начнем с того, что nginx (нехешированная версия, но это не важно) — это веб-сервер, который часто используется для балансирования нагрузки, защиты от DDoS-атак и обеспечения доступа к защищенным сервисам на основе ключа авторизации. Proxy — это сеть, которая позволяет вам маскировать IP-адреса клиентов и обеспечить безопасность при взаимодействии с внешними ресурсами. Docker — это платформа для контейнеризации приложений, которая позволяет вам создавать и управлять независимыми контейнерами с легко конфигурируемыми системами.
Наша задача — настроить nginx proxy с помощью Docker. Мы будем использовать образ nginx:latest, который является современным вариантом старого образа nginx:1.14.2. Образ можно скачать и использовать с помощью следующей команды:
docker pull nginx:latest
Для начала создадим контейнер nginx. Мы можем сделать это с помощью следующей команды:
docker run --name nginx-proxy -d -p 80:80 nginx:latest
Данная команда создаст контейнер под названием nginx-proxy и привяжет его к порту 80.
Настройка nginx proxy
Теперь нам нужно настроить nginx proxy. Для этого нам нужно создать конфигурационный файл nginx.conf. Мы можем сделать это с помощью следующей команды:
docker exec -it nginx-proxy /bin/bash
Данная команда позволит нам войти в контейнер nginx-proxy. Затем мы можем создать конфигурационный файл nginx.conf с помощью следующей команды:
echo "http {
upstream backend {
server localhost:8080;
}
server {
listen 80;
server_name localhost;
location / {
proxy_pass http://backend;
proxy_set_header Host \$host;
proxy_set_header X-Real-IP \$remote_addr;
}
}
}" > /etc/nginx/nginx.conf
Этот конфигурационный файл настроит nginx на использование upstream-сервера backend, который будет доступен на порту 8080. Затем он сможет принимать запросы по адресу localhost и перенаправлять их на upstream-сервер.
Настройка Docker Compose
Наконец, мы можем настроить Docker Compose. Для этого нам нужно создать файл docker-compose.yml с следующим содержанием:
version: '3'
services:
nginx-proxy:
image: nginx:latest
ports:
- "80:80"
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf:ro
Этот файл настроит Docker Compose так, чтобы он создал контейнер nginx-proxy на основе образа nginx:latest, привязал его к порту 80 и подставил конфигурационный файл nginx.conf.
Итоги
Наконец, нам нужно объединить все наши команды в одной команде. Мы можем сделать это с помощью следующей команды:
docker-compose up -d
Данная команда запустит контейнер nginx-proxy в фоновом режиме.
Итак, мы успешно настроили nginx proxy с помощью Docker. Теперь вы можете использовать нашу систему для маскировки IP-адресов клиентов и обеспечения безопасности при взаимодействии с внешними ресурсами.