04.11.2026
docker nginx letsencrypt proxy
Установка и конфигурация Docker Nginx с Let's Encrypt и прокси: шаг за шагом
Если вы ищете простой и надежный способ защитить свою веб-приложение от внешних угроз и обеспечить безопасное подключение к базе данных или другим внутренним ресурсам, то установка Docker Nginx с Let's Encrypt и прокси — идеальный выбор. В этой статье мы рассмотрим шаг за шагом, как правильно установить и настроить Docker Nginx с Let's Encrypt и прокси, чтобы обеспечить безопасность и конфиденциальность вашего веб-приложения.
Установка Docker и Nginx
Чтобы начать, вам нужно установить Docker на своем сервере. Вы можете скачать Docker из официального репозитория и следовать инструкциям по установке. После установки начнем с созданием нового файла docker-compose.yml, в котором описываем конфигурацию нашего Nginx-сервера.
version: '3'
services:
nginx:
image: nginx:latest
ports:
- "80:80"
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf:ro
- ./html:/usr/share/nginx/html
Настройка Nginx
В следующем шаге мы создаем конфигурационный файл nginx.conf, в котором настраиваем наши настройки прокси и SSL/TLS.
http {
...
upstream backend {
server localhost:8080;
}
server {
listen 80;
server_name example.com;
location / {
proxy_pass http://backend;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
}
Установка Let's Encrypt
Чтобы подключить Let's Encrypt к нашему Nginx-серверу, нам нужно установить Certbot и настроить его для автозапроса SSL/TLS-сертификатов.
sudo apt-get update
sudo apt-get install certbot python3-certbot-nginx
Настройка автозапроса SSL/TLS-сертификатов
Чтобы Let's Encrypt мог автоматически обновлять SSL/TLS-сертификаты, нам нужно настроить автозапуск Certbot.
sudo certbot certonly --webroot --webroot-path=/usr/share/nginx/html --email your_email@example.com --agree-tos --non-interactive --domains -d example.com
Настройка прокси
Чтобы настроить прокси, нам нужно создать файл конфигурации прокси и добавить его в наш docker-compose.yml.
version: '3'
services:
nginx:
...
volumes:
- ./proxy.conf:/etc/nginx/proxy.conf:ro
Файл конфигурации прокси
В следующем шаге мы создаем файл конфигурации прокси и настраиваем его.
http {
...
upstream backend {
server localhost:8080;
}
server {
listen 80;
server_name example.com;
location / {
proxy_pass http://backend;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
}
Включение прокси
Чтобы включить прокси, нам нужно добавить конфигурацию прокси в наш docker-compose.yml.
version: '3'
services:
nginx:
...
volumes:
- ./proxy.conf:/etc/nginx/proxy.conf:ro
Включение Let's Encrypt
Чтобы включить Let's Encrypt, нам нужно добавить конфигурацию Let's Encrypt в наш docker-compose.yml.
version: '3'
services:
nginx:
...
volumes:
- ./letsencrypt.conf:/etc/nginx/letsencrypt.conf:ro
Файл конфигурации Let's Encrypt
В следующем шаге мы создаем файл конфигурации Let's Encrypt и настраиваем его.
http {
...
upstream backend {
server localhost:8080;
}
server {
listen 80;
server_name example.com;
location / {
proxy_pass http://backend;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
}
Включение SSL/TLS
Чтобы включить SSL/TLS, нам нужно добавить конфигурацию SSL/TLS в наш docker-compose.yml.
version: '3'
services:
nginx:
...
volumes:
- ./ssl.conf:/etc/nginx/ssl.conf:ro
Файл конфигурации SSL/TLS
В следующем шаге мы создаем файл конфигурации SSL/TLS и настраиваем его.
http {
...
upstream backend {
server localhost:8080;
}
server {
listen 443 ssl;
server_name example.com;
ssl_certificate /etc/nginx/ssl.crt;
ssl_certificate_key /etc/nginx/ssl.key;
location / {
proxy_pass http://backend;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
}
Включение автозапроса SSL/TLS-сертификатов
Чтобы включить автозапрос SSL/TLS-сертификатов, нам нужно добавить конфигурацию автозапроса в наш docker-compose.yml.
version: '3'
services:
nginx:
...
volumes:
- ./autorenew.conf:/etc/nginx/autorenew.conf:ro
Файл конфигурации автозапроса
В следующем шаге мы создаем файл конфигурации автозапроса и настраиваем его.
http {
...
upstream backend {
server localhost:8080;
}
server {
listen 443 ssl;
server_name example.com;
ssl_certificate /etc/nginx/ssl.crt;
ssl_certificate_key /etc/nginx/ssl.key;
location / {
proxy_pass http://backend;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
}
Включение прокси и SSL/TLS
Чтобы включить прокси и SSL/TLS, нам нужно добавить конфигурацию прокси и SSL/TLS в наш docker-compose.yml.
version: '3'
services:
nginx:
...
volumes:
- ./proxy.conf:/etc/nginx/proxy.conf:ro
- ./ssl.conf:/etc/nginx/ssl.conf:ro
Таким образом, мы успешно установили и настроили Docker Nginx с Let's Encrypt и прокси. Данная конфигурация обеспечит безопасное подключение к базе данных или другим внутренним ресурсам и защиту от внешних угроз.