Настройка поддомена в NGINX + Apache + Cloudflare
Полное руководство по настройке поддомена с использованием NGINX как реверс-прокси, Apache как веб-сервер для OwnCloud, выпуском SSL-сертификата от Let's Encrypt и интеграцией с Cloudflare.
🔍 Инфраструктура:
- rproxy (NGINX) → IP:
217.64.28.40 - homecloud (Apache + OwnCloud) → IP:
10.10.0.6 - Cloudflare → Управление DNS-записями и Proxy
🎯 План настройки:
1️⃣ Добавить DNS-запись в Cloudflare
2️⃣ Настроить Apache на homecloud для нового поддомена
3️⃣ Настроить NGINX на rproxy для проксирования
4️⃣ Выпустить SSL-сертификат от Let's Encrypt
5️⃣ Добавить в автоматическое обновление сертификатов
6️⃣ Проверить в браузере
🔥 1️⃣ Настройка DNS-записи в Cloudflare
Тип: A Имя: storage.newdomain.com IPv4: 217.64.28.40 Proxy Status: Proxied
🔥 2️⃣ Настройка Apache на homecloud (10.10.0.6)
Файл: /etc/apache2/sites-available/002-newdomain.conf
<VirtualHost *:80> ServerName storage.newdomain.com DocumentRoot /var/www/owncloud <Directory /var/www/owncloud> AllowOverride All Require all granted Options +FollowSymlinks </Directory> ErrorLog /var/log/apache2/storage_newdomain_error.log CustomLog /var/log/apache2/storage_newdomain_access.log combined ProxyPreserveHost On </VirtualHost>
Активируем сайт и перезагружаем Apache:
sudo a2ensite 002-newdomain.conf sudo systemctl reload apache2 sudo apache2ctl -S
🔥 3️⃣ Настройка NGINX на rproxy (217.64.28.40)
Файл: /etc/nginx/conf.d/storage.newdomain.com.conf
server {
listen 80;
server_name storage.newdomain.com;
server_tokens off;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2;
server_name storage.newdomain.com;
ssl_certificate /etc/letsencrypt/live/storage.newdomain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/storage.newdomain.com/privkey.pem;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location / {
proxy_pass http://10.10.0.6:80;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;
client_max_body_size 10G;
proxy_buffering off;
}
}
Проверяем и перезагружаем NGINX:
sudo nginx -t sudo systemctl reload nginx
🔥 4️⃣ Выпуск SSL-сертификата от Let's Encrypt
sudo certbot --nginx -d storage.newdomain.com
🔥 5️⃣ Настройка автообновления SSL-сертификатов
sudo certbot renew --dry-run
🔥 6️⃣ Проверка и тестирование
1️⃣ curl -vk https://storage.newdomain.com
2️⃣ Открываем в браузере: https://storage.newdomain.com
🎯 Теперь поддомен полностью настроен, защищён SSL и работает через Cloudflare!
✅ Готово!