Анонимные Антиабуз Домены Введение Размещение сайта на VDS (Virtual Dedicated Server) - это профессиональное решение, которое дает полный контроль над вашим веб-проектом. В этом руководстве мы подробно рассмотрим все этапы - от выбора сервера до полной настройки рабочего сайта. Сегодня Вы узнаете в статье: Введение Выбор VDS-сервера Выбор и регистрация домена Необходимые инструменты Дополнительные настройки и оптимизация Заключение 2. Подготовка к работе 2.1. Выбор VDS-сервера От себя бы хотел порекомендовать хоститнг QWINS. Ведь они предлагают лучшие цены и лучшее качество на любые VDS Для разных типов проектов нужны разные конфигурации: (Это минимальные характеристики) Статичный сайт - 1 ядро, 1 ГБ RAM, 10 ГБ SSD WordPress - 2 ядра, 2 ГБ RAM, 20 ГБ SSD PHP-приложение2 ядра, 4 ГБ RAM, 30 ГБ SSD Python-проект2 ядра, 4 ГБ RAM, 30 ГБ SSD Покупка - adeno и через сайт https://qwins.co/ 2.2. Выбор и регистрация домена 1. Переходим в телеграмм бота: @BPdomains_bot 2. Открываем меню Какую категорию домена выбрать? https://telegra.ph/BulletProof-Domains-Categories-10-16 3. Выбираем имя 4. Оформление 5. Получаем аккаунт КлаудФларе и пользуемся Все 3. Подключение и базовая настройка сервера W+R : cmd 1. Первичное подключение ssh root@ваш_ip_сервера // Подключение к серверу по ssh под пользователем root с указанием IP-адреса сервера 2. Обновление системы apt update // Обновление списка доступных пакетов из репозиториев apt upgrade -y // Обновление списка доступных пакетов из репозиториев apt install -y sudo curl wget ufw // Установка основных утилит: sudo (права администратора), curl/wget (загрузка файлов), ufw (файрвол) 3. Настройка базовой безопасности Создаем нового пользователя: adduser ваш_пользователь // Создание нового пользователя (безопаснее, чем использовать root) usermod -aG sudo ваш_пользователь // Добавление пользователя в группу sudo (дает права администратора) Настраиваем фаервол: ufw allow OpenSSH // Разрешение SSH-подключений через файрвол ufw allow 80/tcp // Разрешение HTTP-трафика ufw allow 443/tcp // Разрешение HTTPS-трафика ufw enable // Активация файрвола Отключаем вход по root: nano /etc/ssh/sshd_config Перезагружаем SSH: systemctl restart sshd 4. Варианты установки сайта 4.1. Быстрый способ (статичный сайт) 1. Установка Nginx sudo apt install nginx -y // Установка веб-сервера Nginx sudo systemctl start nginx // Запуск Nginx sudo systemctl enable nginx // Добавление Nginx в автозагрузку 2. Проверка работы Nginx Откройте в браузере http://ваш_ip_сервера. Должна появиться страница приветствия Nginx. 3. Настройка директории сайта sudo mkdir -p /var/www/ваш_сайт/html // Создает папку для сайта (ключ -p создает все родительские директории, если их нет) sudo chown -R $USER:$USER /var/www/ваш_сайт/html // Меняет владельца папки на текущего пользователя (-R рекурсивно для всех вложенных файлов) sudo chmod -R 755 /var/www/ваш_сайт // Устанавливает права: владелец - полные 4. Создаем тестовую страницу <!DOCTYPE html> <html> <head> <title>HI</title> </head> <body> <h1>Chall тут был!</h1> </body> </html> 5. Настройка виртуального хоста sudo nano /etc/nginx/sites-available/ваш_сайт // Редактирование конфигурационного файла для вашего сайта в Nginx Код 6. Активируем конфиг: sudo ln -s /etc/nginx/sites-available/ваш_сайт /etc/nginx/sites-enabled/ sudo nginx -t sudo systemctl restart nginx // Создание символической ссылки для активации конфига сайта // Проверка синтаксиса конфигурации Nginx на ошибки // Перезапуск Nginx для применения изменений 4.2. Средний способ (CMS WordPress) 1. Установка LAMP стека sudo apt install apache2 mysql-server php php-mysql php-gd php-curl php-mbstring php-xml php-xmlrpc php-soap php-intl php-zip -y // Установка веб-сервера Apache, СУБД MySQL и всех необходимых php-модулей 2. Настройка MySQL sudo mysql_secure_installation // Запуск скрипта для базовой настройки безопасности MySQL Ответьте на вопросы: Введите пароль для root Удалить анонимных пользователей? (Y) Запретить root вход удаленно? (Y) Удалить тестовую базу? (Y) Перезагрузить привилегии? (Y) 3. Создание базы данных sudo mysql -u root -p // Вход в консоль MySQL под пользователем root В MySQL выполните: CREATE DATABASE wordpress; CREATE USER 'wpuser'@'localhost' IDENTIFIED BY 'ваш_пароль'; GRANT ALL PRIVILEGES ON wordpress.* TO 'wpuser'@'localhost'; FLUSH PRIVILEGES; exit 4. Установка WordPress cd /tmp wget https://wordpress.org/latest.tar.gz tar -xzvf latest.tar.gz sudo mv wordpress /var/www/ваш_сайт/html sudo chown -R www-data:www-data /var/www/ваш_сайт/html sudo chmod -R 755 /var/www/ваш_сайт/html // Переход во временную директорию // Загрузка последней версии WordPress // Распаковка архива WordPress // Перенос файлов WordPress в корневую директорию сайта // Назначение правильного владельца для файлов WordPress // Установка корректных прав доступа 5. Настройка Apache sudo nano /etc/apache2/sites-available/ваш_сайт.conf // Создание конфигурационного файла виртуального хоста Apache Настройка <VirtualHost *:80> ServerName ваш_домен ServerAlias www.ваш_домен DocumentRoot /var/www/ваш_сайт/html <Directory /var/www/ваш_сайт/html> AllowOverride All </Directory> </VirtualHost> Активируем сайт: sudo a2ensite ваш_сайт.conf sudo a2enmod rewrite sudo systemctl restart apache2 // Активация сайта в Apache // Включение модуля rewrite для ЧПУ (человеко-понятных URL) // Перезапуск Apache для применения изменений 6. Завершение установки WordPress Откройте в браузере ваш_домен Выберите язык Введите данные базы данных: Имя базы данных: wordpress Имя пользователя: wpuser Пароль: ваш_пароль Сервер базы данных: localhost Префикс таблиц: wp_ Завершите установку 4.3. С PHP (LEMP стек) 1. Установка компонентов sudo apt install nginx mysql-server php-fpm php-mysql php-cli php-curl php-gd php-intl php-mbstring php-soap php-xml php-xmlrpc php-zip -y // Установка Nginx, MySQL и PHP-FPM с необходимыми модулями 2. Настройка MySQL Введите пароль для root Удалить анонимных пользователей? (Y) Запретить root вход удаленно? (Y) Удалить тестовую базу? (Y) Перезагрузить привилегии? (Y) 3. Настройка PHP-FPM sudo nano /etc/PHP/7.4/fpm/PHP.ini // Редактирование конфигурации PHP Найдите и измените: cgi.fix_pathinfo=0 upload_max_filesize = 32M post_max_size = 48M memory_limit = 256M max_execution_time = 300 Перезапустите PHP: sudo systemctl restart php7.4-fpm // Перезапуск PHP-FPM для применения изменений 4. Настройка Nginx sudo nano /etc/nginx/sites-available/ваш_сайт // Открывает файл конфигурации Nginx для вашего сайта в текстовом редакторе nano Текст Активируем конфиг: sudo ln -s /etc/nginx/sites-available/ваш_сайт /etc/nginx/sites-enabled/ sudo nginx -t sudo systemctl restart nginx // Создает символическую ссылку для включения конфигурации сайта // Проверяет синтаксис конфигурационных файлов Nginx на ошибки // Перезапускает веб-сервер Nginx для применения изменений 4.4. С Python (Django/Flask) 1. Установка Python и зависимостей sudo apt install python3-pip python3-dev libpq-dev nginx curl -y sudo -H pip3 install --upgrade pip sudo -H pip3 install virtualenv // Устанавливает: // - pip (менеджер пакетов Python) // - Заголовочные файлы Python // - Библиотеки для работы с PostgreSQL // - Веб-сервер Nginx // - Утилиту curl 2. Создание виртуального окружения mkdir ~/ваш_проект cd ~/ваш_проект virtualenv venv source venv/bin/activate // Создает папку для вашего проекта в домашней директории // Перемещает в папку проекта // Создает изолированное окружение Python в папке venv // Активирует виртуальное окружение (теперь pip будет устанавливать пакеты сюда) 3. Установка Django/Flask pip install django gunicorn psycopg2-binary django-admin startproject ваш_проект . pip install flask gunicorn // Устанавливает: // - Django (веб-фреймворк) // - Gunicorn (WSGI-сервер) // - Библиотеку для работы с PostgreSQL 4. Настройка Gunicorn sudo nano /etc/systemd/system/ваш_проект.service // Создает конфигурационный файл для управления приложением как системной службой Настройка [Unit] Description=Gunicorn instance для ваш_проект After=network.target [Service] User=ваш_пользователь Group=www-data WorkingDirectory=/home/ваш_пользователь/ваш_проект ExecStart=/home/ваш_пользователь/ваш_проект/venv/bin/gunicorn --workers 3 --bind unix:ваш_проект.sock ваш_проект.wsgi:application [Install] WantedBy=multi-user.target Запускаем: sudo systemctl start ваш_проект // Запускает ваше приложение как системную службу sudo systemctl enable ваш_проект // Настраивает автоматический запуск приложения при загрузке системы 5. Настройка Nginx sudo nano /etc/nginx/sites-available/ваш_проект // Создает конфигурационный файл Nginx специально для вашего Python-приложения Текст Активация sudo ln -s /etc/nginx/sites-available/ваш_проект /etc/nginx/sites-enabled/ // Включает конфигурацию сайта через символическую ссылку sudo nginx -t // Проверяет конфигурацию Nginx перед перезапуском sudo systemctl restart nginx // Применяет все изменения конфигурации 5. Подробная настройка домена 5.1. Настройка DNS записей В панели управления доменом найдите раздел DNS A запись: @ → IP вашего сервера CNAME запись: www → ваш_домен Сохраните изменения 5.2. Установка SSL сертификата (Let's Encrypt) Настройка sudo apt install certbot python3-certbot-nginx -y sudo certbot --nginx -d ваш_домен -d www.ваш_домен Выберите вариант перенаправления HTTP → HTTPS Автоматическое обновление сертификата sudo certbot renew --dry-run 6. Работа с FileZilla 6.1. Подключение к серверу Откройте FileZilla Хост: sftp://ваш_ip_сервера Пользователь: ваш_пользователь Пароль: ваш_пароль Порт: 22 6.2. Загрузка файлов В левой части (локальные файлы) найдите нужные файлы В правой части (сервер) перейдите в нужную директорию (/var/www/...) Перетащите файлы с локального компьютера на сервер 6.3. Настройка прав Файлы sudo chmod 644 /path/to/file Директории sudo chmod 755 /path/to/directory 7. Дополнительные настройки 1. Оптимизация Nginx/Apache gzip on; gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript; 2. Настройка кеширования location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ { expires 365d; } 3. Мониторинг ресурсов sudo apt install htop htop P.S Писал статью достаточно долго, мог где-то ошибиться. Если нашли ошибки или хотите что-то добавить, то пришлите, пожалуйста в Telegram: KUERTOV_AVITO . Комментарии к командам были взяты из публичных источников + ИИ