Настройка домена nginx
-
Вот подробная инструкция по настройке домена через Nginx с двумя вариантами:
Общие шаги для обоих вариантов
Установите Nginx
sudo apt update sudo apt install nginx
Проверьте работу Nginx
Откройте браузер и перейдите по адресуhttp://ваш_домен
. Должна отобразиться стандартная страница Nginx.Создайте папку для сайта
Если вы используете статический контент:sudo mkdir -p /var/www/ваш_домен/html sudo chown -R $USER:$USER /var/www/ваш_домен/html sudo chmod -R 755 /var/www
Вариант 1: Прямой доступ к файлам (статический сайт)
Создайте конфиг
sudo nano /etc/nginx/sites-available/ваш_домен.conf
Вставьте конфиг:
server { listen 80; server_name ваш_домен www.ваш_домен; location / { root /var/www/ваш_домен/html; index index.html index.htm; try_files $uri $uri/ =404; } # Логи access_log /var/log/nginx/ваш_домен.access.log; error_log /var/log/nginx/ваш_домен.error.log; }
Активируйте конфиг
sudo ln -s /etc/nginx/sites-available/ваш_домен.conf /etc/nginx/sites-enabled/ sudo nginx -t # Проверка синтаксиса sudo systemctl reload nginx
Добавьте тестовый файл
echo "Hello, World!" | sudo tee /var/www/ваш_домен/html/index.html
Вариант 2: Проксирование на Node.js через PM2
Запустите Node.js приложение через PM2
cd /путь/к/вашему_приложению pm2 start app.js --name "ваше_приложение" -- --port 3000
Создайте конфиг Nginx
sudo nano /etc/nginx/sites-available/ваш_домен.conf
Вставьте конфиг:
server { listen 80; server_name ваш_домен www.ваш_домен; location / { proxy_pass http://localhost:3000; 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 $scheme; # Поддержка WebSocket proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } # Логи access_log /var/log/nginx/ваш_домен.access.log; error_log /var/log/nginx/ваш_домен.error.log; }
Активируйте конфиг
sudo ln -s /etc/nginx/sites-available/ваш_домен.conf /etc/nginx/sites-enabled/ sudo nginx -t sudo systemctl reload nginx
Добавьте SSL-сертификат (Let’s Encrypt)
Установите Certbot
sudo apt install certbot python3-certbot-nginx
Получите сертификат
sudo certbot --nginx -d ваш_домен -d www.ваш_домен
Настройте автопродление
sudo crontab -e
Добавьте:
0 0,12 * * * root certbot renew --quiet && systemctl reload nginx
Проверьте работу##
- Откройте браузер и перейдите по адресу
https://ваш_домен
. - Убедитесь, что сайт работает через HTTPS.
- Проверьте логи:
tail -f /var/log/nginx/ваш_домен.error.log
Частые ошибки и решения
Ошибка Решение Port 80 failed to respond
Убедитесь, что Nginx запущен: sudo systemctl status nginx
Could not open file /var/www/...
Проверьте права на папку: ls -l /var/www
Connection refused
Убедитесь, что Node.js приложение запущено: pm2 list
Certbot failed to authenticate
Проверьте DNS-записи вашего домена
Дополнительно
Настройка автозапуска PM2
pm2 save pm2 startup
Резервное копирование
Создайте резервную копию конфига Nginx:sudo cp /etc/nginx/sites-available/ваш_домен.conf ~/ваш_домен.conf.bak
Теперь ваш домен настроен через Nginx с поддержкой HTTPS. Выберите подходящий вариант в зависимости от ваших задач:
- Статический сайт → Вариант 1
- Node.js приложение → Вариант 2
- Откройте браузер и перейдите по адресу
-
Вот подробная инструкция по настройке домена через Nginx с двумя вариантами:
Общие шаги для обоих вариантов
Установите Nginx
sudo apt update sudo apt install nginx
Проверьте работу Nginx
Откройте браузер и перейдите по адресуhttp://ваш_домен
. Должна отобразиться стандартная страница Nginx.Создайте папку для сайта
Если вы используете статический контент:sudo mkdir -p /var/www/ваш_домен/html sudo chown -R $USER:$USER /var/www/ваш_домен/html sudo chmod -R 755 /var/www
Вариант 1: Прямой доступ к файлам (статический сайт)
Создайте конфиг
sudo nano /etc/nginx/sites-available/ваш_домен.conf
Вставьте конфиг:
server { listen 80; server_name ваш_домен www.ваш_домен; location / { root /var/www/ваш_домен/html; index index.html index.htm; try_files $uri $uri/ =404; } # Логи access_log /var/log/nginx/ваш_домен.access.log; error_log /var/log/nginx/ваш_домен.error.log; }
Активируйте конфиг
sudo ln -s /etc/nginx/sites-available/ваш_домен.conf /etc/nginx/sites-enabled/ sudo nginx -t # Проверка синтаксиса sudo systemctl reload nginx
Добавьте тестовый файл
echo "Hello, World!" | sudo tee /var/www/ваш_домен/html/index.html
Вариант 2: Проксирование на Node.js через PM2
Запустите Node.js приложение через PM2
cd /путь/к/вашему_приложению pm2 start app.js --name "ваше_приложение" -- --port 3000
Создайте конфиг Nginx
sudo nano /etc/nginx/sites-available/ваш_домен.conf
Вставьте конфиг:
server { listen 80; server_name ваш_домен www.ваш_домен; location / { proxy_pass http://localhost:3000; 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 $scheme; # Поддержка WebSocket proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } # Логи access_log /var/log/nginx/ваш_домен.access.log; error_log /var/log/nginx/ваш_домен.error.log; }
Активируйте конфиг
sudo ln -s /etc/nginx/sites-available/ваш_домен.conf /etc/nginx/sites-enabled/ sudo nginx -t sudo systemctl reload nginx
Добавьте SSL-сертификат (Let’s Encrypt)
Установите Certbot
sudo apt install certbot python3-certbot-nginx
Получите сертификат
sudo certbot --nginx -d ваш_домен -d www.ваш_домен
Настройте автопродление
sudo crontab -e
Добавьте:
0 0,12 * * * root certbot renew --quiet && systemctl reload nginx
Проверьте работу##
- Откройте браузер и перейдите по адресу
https://ваш_домен
. - Убедитесь, что сайт работает через HTTPS.
- Проверьте логи:
tail -f /var/log/nginx/ваш_домен.error.log
Частые ошибки и решения
Ошибка Решение Port 80 failed to respond
Убедитесь, что Nginx запущен: sudo systemctl status nginx
Could not open file /var/www/...
Проверьте права на папку: ls -l /var/www
Connection refused
Убедитесь, что Node.js приложение запущено: pm2 list
Certbot failed to authenticate
Проверьте DNS-записи вашего домена
Дополнительно
Настройка автозапуска PM2
pm2 save pm2 startup
Резервное копирование
Создайте резервную копию конфига Nginx:sudo cp /etc/nginx/sites-available/ваш_домен.conf ~/ваш_домен.conf.bak
Теперь ваш домен настроен через Nginx с поддержкой HTTPS. Выберите подходящий вариант в зависимости от ваших задач:
- Статический сайт → Вариант 1
- Node.js приложение → Вариант 2
Пользователь @kirilljs написал в Настройка домена nginx:
0 0,12 * * * root certbot renew --quiet && systemctl reload nginx
не обязательно перезапускать nginx
- Откройте браузер и перейдите по адресу
-
Пользователь @kirilljs написал в Настройка домена nginx:
0 0,12 * * * root certbot renew --quiet && systemctl reload nginx
не обязательно перезапускать nginx
@Jspi Да, соглы
© 2024 - 2025 RosDesk, Inc. Все права защищены.