Перейти к содержанию
  • Категории
  • Последние
  • Метки
  • Популярные
  • Пользователи
  • Группы
Свернуть
Логотип бренда
Категории
  1. Главная
  2. Категории
  3. Бекенд, разработка серверов
  4. Настройка домена nginx

Настройка домена nginx

Запланировано Прикреплена Закрыта Перенесена Бекенд, разработка серверов
3 Сообщения 2 Постеры 34 Просмотры
  • Сначала старые
  • Сначала новые
  • По количеству голосов
Ответить
  • Ответить, создав новую тему
Авторизуйтесь, чтобы ответить
Эта тема была удалена. Только пользователи с правом управления темами могут её видеть.
  • kirilljsK Не в сети
    kirilljsK Не в сети
    kirilljs
    js
    написал отредактировано
    #1

    Вот подробная инструкция по настройке домена через 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
    

    Проверьте работу##

    1. Откройте браузер и перейдите по адресу https://ваш_домен.
    2. Убедитесь, что сайт работает через HTTPS.
    3. Проверьте логи:
    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
    JspiJ 1 ответ Последний ответ
    0
    • kirilljsK kirilljs

      Вот подробная инструкция по настройке домена через 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
      

      Проверьте работу##

      1. Откройте браузер и перейдите по адресу https://ваш_домен.
      2. Убедитесь, что сайт работает через HTTPS.
      3. Проверьте логи:
      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
      JspiJ Не в сети
      JspiJ Не в сети
      Jspi
      js
      написал отредактировано Jspi
      #2

      Пользователь @kirilljs написал в Настройка домена nginx:

      0 0,12 * * * root certbot renew --quiet && systemctl reload nginx

      не обязательно перезапускать nginx

      kirilljsK 1 ответ Последний ответ
      1
      • JspiJ Jspi

        Пользователь @kirilljs написал в Настройка домена nginx:

        0 0,12 * * * root certbot renew --quiet && systemctl reload nginx

        не обязательно перезапускать nginx

        kirilljsK Не в сети
        kirilljsK Не в сети
        kirilljs
        js
        написал отредактировано
        #3

        @Jspi Да, соглы

        1 ответ Последний ответ
        0

        Категории

        • Главная
        • Новости
        • Фронтенд
        • Бекенд
        • Языки программирования

        Контакты

        • Сотрудничество
        • info@rosdesk.ru
        • Наш чат
        • Наш ТГ канал

        © 2024 - 2025 RosDesk, Inc. Все права защищены.

        Политика конфиденциальности
        • Войти

        • Нет учётной записи? Зарегистрироваться

        • Войдите или зарегистрируйтесь для поиска.
        • Первое сообщение
          Последнее сообщение
        0
        • Категории
        • Последние
        • Метки
        • Популярные
        • Пользователи
        • Группы