В этом материале разберем установку прокси-сервера Squid, используя контейнер Docker, на VPS с Ubuntu. Прокси-сервер Squid может помочь обойти блокировки обновлений WordPress, что особенно актуально при работе с хостингами в некоторых странах.
Шаг 1. Установка Docker на Ubuntu
По умолчанию, репозиторий Ubuntu не содержит последнюю версию Docker. Поэтому, для установки актуальной версии Docker CE (Community Edition), сначала необходимо добавить официальный репозиторий Docker в APT.
- Установите зависимости для работы с безопасными репозиториями и внешними пакетами. Для этого выполните команду:
sudo apt install apt-transport-https ca-certificates curl software-properties-common -y
- После установки зависимостей добавьте GPG-ключ репозитория Docker. Это необходимо для проверки целостности и подлинности пакетов:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
- Добавьте репозиторий Docker CE в список APT:
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable"
- Проверьте, что репозиторий добавлен корректно, и APT видит пакеты Docker:
apt-cache policy docker-ce
Вы должны увидеть вывод с перечнем версий Docker, доступных для установки.
- Установите Docker с помощью команды:
sudo apt install docker-ce -y
- Проверьте состояние службы Docker после установки:
sudo systemctl status docker
Если все прошло успешно, Docker должен быть активен, что подтверждается строкой: Active: active (running)
.
- Убедитесь, что Docker установлен корректно, проверив его версию:
docker --version
Шаг 2. Установка Docker Compose
Docker Compose — это инструмент для управления многоконтейнерными приложениями. Для установки выполните:
sudo apt install docker-compose -y
Проверьте версию Docker Compose:
docker-compose --version
Шаг 3. Настройка Squid с помощью Docker Compose
Теперь, когда Docker установлен, мы можем создать контейнер с прокси-сервером Squid. Для этого используем Docker Compose.
- Создайте директорию для файлов конфигурации Squid:
mkdir squid cd squid
- Создайте файл конфигурации Docker Compose:
nano docker-compose.yaml
Вставьте в файл следующие строки:
version: "3" services: proxy: image: ubuntu/squid ports: - "8080:3128" volumes: - ./squid.conf:/etc/squid/squid.conf - ./passwords:/etc/squid/passwords restart: always
- Создайте файл конфигурации Squid:
nano squid.conf
Вставьте следующий конфигурационный файл Squid:
acl localnet src 10.0.0.0/8 acl localnet src 172.16.0.0/12 acl localnet src 192.168.0.0/16 acl SSL_ports port 443 acl Safe_ports port 80 acl Safe_ports port 443 acl Safe_ports port 21 acl CONNECT method CONNECT auth_param basic program /usr/lib/squid/basic_ncsa_auth /etc/squid/passwords auth_param basic realm my-proxy-name acl authenticated proxy_auth REQUIRED http_access allow authenticated http_port 3128 cache deny all access_log none cache_log /dev/null
В этой конфигурации добавлена аутентификация для пользователей через файл паролей passwords
.
- Создайте файл для хранения паролей пользователей:
nano passwords
Файл можно будет наполнить, используя утилиту htpasswd
.
Шаг 4. Запуск контейнера Squid
После завершения настройки конфигурации, вы можете запустить контейнер с прокси-сервером Squid. Выполните следующую команду:
docker-compose up -d
Если все прошло успешно, контейнер будет запущен в фоновом режиме. Проверьте состояние контейнера:
docker ps
Вы должны увидеть контейнер Squid в состоянии Up
.
Шаг 5. Добавление пользователей
Чтобы добавить пользователя с паролем для доступа к прокси, воспользуйтесь утилитой htpasswd
. Например, для создания первого пользователя:
sudo htpasswd -c passwords имя_пользователя
Для добавления последующих пользователей:
sudo htpasswd passwords имя_пользователя
Шаг 6. Настройка прокси в WordPress
Чтобы WordPress использовал прокси для обхода блокировок, внесите изменения в файл wp-config.php
, добавив следующие строки:
define('WP_PROXY_HOST', 'localhost'); define('WP_PROXY_PORT', '3128'); define('WP_PROXY_USERNAME', 'username'); define('WP_PROXY_PASSWORD', 'password'); define('WP_PROXY_BYPASS_HOSTS', 'localhost, www.example.com');
Эти настройки позволят WordPress взаимодействовать с прокси-сервером Squid, передавая обновления через авторизованное подключение.
Заключение
Теперь ваш прокси-сервер Squid полностью настроен и запущен в Docker на VPS с Ubuntu. Используя эту схему, вы можете обеспечить беспрепятственный доступ к обновлениям WordPress, а также настроить прокси для других приложений.