Как запустить веб-архив или зеркало сайта на VPS с Nginx и wget

ГлавнаяКак запустить веб-архив или зеркало сайта на VPS с Nginx и wget

Содержание

Запускаем веб-архив или зеркало сайта на VPS с Nginx и wget: личный опыт

Когда у меня возникла необходимость создать локальное зеркало сайта — скажем, на случай отключения оригинального ресурса или просто для оффлайн-доступа — я решила развернуть его на своём VPS. Благо, у меня уже была Ubuntu и немного опыта с Nginx. Делюсь инструкцией, как всё настроить без лишнего стресса.

1. Подготовка VPS и установка Nginx

Если у вас ещё нет настроенного сервера, начнём с базового:

sudo apt update && sudo apt upgrade -y sudo apt install nginx -y

Nginx — лёгкий и быстрый веб-сервер. После установки его можно сразу запустить:

sudo systemctl start nginx sudo systemctl enable nginx

Проверить, работает ли сервер, просто: откройте в браузере IP-адрес вашего VPS. Если видите стандартную страницу приветствия Nginx — значит, всё ок.

2. Скачиваем содержимое сайта с помощью wget

Теперь используем

wget
для создания локального зеркала. Вот команда, которая работает почти везде:

wget --mirror --convert-links --adjust-extension --page-requisites --no-parent https://example.com

Разберу ключи:

  • --mirror
    — делает полный зеркальный слепок;
  • --convert-links
    — переписывает ссылки так, чтобы они работали локально;
  • --adjust-extension
    — добавляет нужные расширения к файлам;
  • --page-requisites
    — подтягивает все стили, скрипты, картинки;
  • --no-parent
    — не лезет выше по иерархии сайта.

После загрузки структура сайта будет сохранена в папке

example.com/
.

3. Настройка Nginx для публикации зеркала

Теперь подключим скачанный архив к веб-серверу. Самый простой путь — указать Nginx корневую директорию сайта.

Открываем конфиг:

sudo nano /etc/nginx/sites-available/default

И меняем (или добавляем):

server { listen 80; server_name _; root /home/youruser/example.com; index index.html; location / { try_files $uri $uri/ =404; } }

Перезапускаем Nginx:

sudo systemctl reload nginx

Теперь при переходе на IP-адрес VPS вы будете видеть локальную копию нужного сайта.

4. Дополнительно: авторизация или защита архива

Если вы не хотите, чтобы зеркало было доступно всем подряд, добавьте базовую авторизацию.

Устанавливаем нужный инструмент:

sudo apt install apache2-utils

Создаём файл паролей:

sudo htpasswd -c /etc/nginx/.htpasswd myuser

В конфиге Nginx:

location / { auth_basic "Restricted Content"; auth_basic_user_file /etc/nginx/.htpasswd; try_files $uri $uri/ =404; }

Перезапускаем:

sudo systemctl reload nginx

The end

С помощью обычного

wget
и минимальной настройки Nginx можно буквально за 15 минут поднять локальную копию любого сайта на своём VPS. Такой подход полезен и для разработки, и для внутреннего использования в команде, и для обхода нестабильности оригинальных источников.

Если вы часто работаете с вебом, рекомендую сохранить себе базовый шаблон Nginx-конфига и держать VPS с Ubuntu под рукой. Никогда не знаешь, когда пригодится. 😉