Настройка поддомена в NGINX + Apache + Cloudflare

From wiki.baghirzade.pro
Revision as of 11:48, 10 October 2025 by Sadmin (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Полное руководство по настройке поддомена с использованием 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!

✅ Готово!