Frod

07.11.2026

nginx reverse proxy docker

Frod — свобода без границ

Нginx в роли обратного прокси

Нginx может использоваться в качестве обратного прокси для проброса трафика от внешнего мира к внутреннему серверу. Для этого настроение Nginx требуется конфигурировать в качестве прокси-сервера, который будет принимать запросы от клиентов и проходить их к внутреннему серверу.

Настройка Nginx в роли обратного прокси в Docker

Чтобы настроить Nginx в качестве обратного прокси в Docker, вам потребуется:

  1. Создать файл конфигурации Nginx (nginx.conf) с настройками обратного прокси:
user nginx;
worker_processes 1;

http {
 server {
 listen 80;
 server_name example.com;

 location / {
 proxy_pass http://localhost:8080;
 proxy_set_header Host $host;
 proxy_set_header X-Real-IP $remote_addr;
 }
 }
}
  1. Создать Docker-образ Nginx с конфигурацией обратного прокси:
FROM nginx:latest

COPY nginx.conf /etc/nginx/nginx.conf

EXPOSE 80
  1. Создать файл docker-compose.yml с конфигурацией Docker-образов:
version: '3'

services:
 nginx:
 build: .
 ports:
 - "80:80"
 depends_on:
 - app
 environment:
 - NGINX_HOST=example.com
 - NGINX_PORT=8080

 app:
 build: ./app
 ports:
 - "8080:8080"
  1. Запустите Docker-образы с помощью команды docker-compose up.

Остроконечные случаи

  1. Проксирование SSL-трафика: Если вы хотите проксировать SSL-трафик через Nginx, вам потребуется настроить SSL-сертификаты и конфигурацию Nginx для использования HTTPS.
http {
 ...
 server {
 listen 443 ssl;
 server_name example.com;

 ssl_certificate /etc/nginx/ssl/example.com.crt;
 ssl_certificate_key /etc/nginx/ssl/example.com.key;

 location / {
 proxy_pass https://localhost:8443;
 proxy_set_header Host $host;
 proxy_set_header X-Real-IP $remote_addr;
 }
 }
}
  1. Динамическая конфигурация: Если вы хотите динамически конфигурировать Nginx в зависимости от изменений в вашей приложении, вы можете использовать переменные окружения и настраивать конфигурацию Nginx на лету.
http {
 ...
 server {
 listen 80;
 server_name example.com;

location / {
proxy_pass http://localhost:$APP_PORT;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
}

Заключение:
В этой статье мы рассмотрели, как настроить Nginx в качестве обратного прокси в Docker, а также обсудили некоторые остроконечные случаи, с которыми вы можете столкнуться при работе с этой конфигурацией. Мы надеемся, что эта информация была полезна для вас и помогла вам в понимании того, как настроить Nginx в качестве обратного прокси в Docker.