Установка прокси на Ubuntu: Squid, Nginx обратный прокси, настройка 2024 | AdminWiki

Установка прокси на Ubuntu: полное руководство от настройки сервера до Nginx обратного прокси

17 декабря 2025 6 мин. чтения #devops #linux #nginx #squid #ubuntu #настройка сервера #обратный прокси #прокси

Представь, что тебе нужно развернуть прокси-сервер на Ubuntu — для тестирования, балансировки нагрузки или обеспечения безопасности внутренних сервисов. Давай разберем два основных подхода: классический прокси-сервер Squid и мощный Nginx в роли обратного прокси. Это руководство проведет тебя от установки до тонкой настройки.

Выбор решения: какой прокси тебе нужен?

Перед началом установки определи цель:

Тип прокси Использование Инструмент
Прямой (Forward) Кэширование трафика, контроль доступа, анонимизация Squid
Обратный (Reverse) Балансировка нагрузки, SSL-терминация, роутинг к backend-сервисам Nginx

Часть 1: Установка и настройка Squid Proxy на Ubuntu

Squid — это стандарт де-факто для прямых прокси-серверов. Давай установим его и настроим базовую конфигурацию.

Шаг 1: Установка Squid

bash
sudo apt update
sudo apt install squid -y

Важно: После установки Squid автоматически запускается. Проверить статус можно командой sudo systemctl status squid.

Шаг 2: Базовая настройка конфигурации

Основной конфигурационный файл находится в /etc/squid/squid.conf. Сначала создадим backup:

bash
sudo cp /etc/squid/squid.conf /etc/squid/squid.conf.backup

Теперь отредактируем конфиг, разрешив доступ с локальной сети (например, 192.168.1.0/24):

bash
sudo nano /etc/squid/squid.conf

Найди или добавь следующие строки:

config
# Порт, на котором будет работать прокси
http_port 3128

# ACL для локальной сети
acl local_network src 192.168.1.0/24

# Разрешаем доступ
http_access allow local_network
http_access deny all

Шаг 3: Применение конфигурации и настройка фаервола

bash
# Проверка синтаксиса конфига
sudo squid -k parse

# Перезагрузка Squid
sudo systemctl reload squid

# Если используешь UFW, открой порт
sudo ufw allow 3128/tcp
sudo ufw reload

Опасно: Не оставляй прокси открытым для всего интернета без аутентификации! Это приведет к злоупотреблениям и возможным юридическим проблемам.

Часть 2: Настройка Nginx как обратного прокси сервера на Ubuntu

Nginx обратный прокси — это мощный инструмент для маршрутизации трафика к твоим приложениям. Давай настроим его для перенаправления запросов на локальный веб-сервер.

Шаг 1: Установка Nginx

bash
sudo apt install nginx -y

Шаг 2: Создание конфигурации обратного прокси

Создадим новый конфигурационный файл для нашего проксируемого приложения (например, оно работает на порту 8080):

bash
sudo nano /etc/nginx/sites-available/my_reverse_proxy
config
server {
    listen 80;
    server_name example.com www.example.com;

    location / {
        # Основная директива обратного прокси
        proxy_pass http://localhost:8080;
        
        # Стандартные заголовки для корректной работы
        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;
        
        # Таймауты (важно для долгих запросов)
        proxy_connect_timeout 60s;
        proxy_send_timeout 60s;
        proxy_read_timeout 60s;
    }
    
    # Дополнительно: проксирование WebSocket
    location /ws/ {
        proxy_pass http://localhost:8080;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }
}

Шаг 3: Активация конфигурации и тестирование

bash
# Активируем конфиг
sudo ln -s /etc/nginx/sites-available/my_reverse_proxy /etc/nginx/sites-enabled/

# Проверяем синтаксис Nginx
sudo nginx -t

# Если всё OK, перезагружаем
sudo systemctl reload nginx

Профи-совет: Для продакшена обязательно настрой SSL/TLS терминацию на Nginx. Это снизит нагрузку на backend и упростит управление сертификатами.

Часть 3: Продвинутые сценарии и оптимизация

Балансировка нагрузки между несколькими backend-серверами

Nginx может распределять трафик между несколькими экземплярами приложения:

config
upstream backend_servers {
    # Распределение по алгоритму round-robin
    server 192.168.1.101:8080;
    server 192.168.1.102:8080;
    server 192.168.1.103:8080;
}

server {
    listen 80;
    
    location / {
        proxy_pass http://backend_servers;
        proxy_set_header Host $host;
    }
}

Кэширование статики в Squid для ускорения

config
# В /etc/squid/squid.conf
cache_dir ufs /var/spool/squid 5000 16 256
maximum_object_size 256 MB
cache_mem 512 MB

Часто задаваемые вопросы (FAQ)

Как проверить, что прокси работает?

Для Squid: curl -x http://ваш_сервер:3128 http://ifconfig.me — должен вернуть IP твоего сервера. Для Nginx: просто открой в браузере домен, который настроил.

Можно ли использовать Squid и Nginx вместе?

Да, это распространенная архитектура: Nginx как обратный прокси и SSL-терминатор на фронте, а Squid для кэширования контента или контроля доступа к внешним ресурсам.

Как настроить аутентификацию на Squid?

Установи пакет apache2-utils, создай файл с паролями: htpasswd -c /etc/squid/passwords user1, затем в squid.conf добавь: auth_param basic program /usr/lib/squid/basic_ncsa_auth /etc/squid/passwords и acl authenticated proxy_auth REQUIRED.

Какие порты по умолчанию используются?

Squid: 3128 (HTTP), 3130 (HTTPS). Nginx: 80 (HTTP), 443 (HTTPS). Всегда меняй порты по умолчанию в продакшене для безопасности.

Заключение

Установка прокси на Ubuntu — не просто выполнение команд, а создание инфраструктурного компонента. Ты теперь знаешь:

  • Как установить и настроить Squid для прямого проксирования
  • Как конфигурировать Nginx обратный прокси для маршрутизации к backend-сервисам
  • Основы безопасности и оптимизации обоих решений

Начни с простой конфигурации, протестируй, затем добавляй аутентификацию, кэширование или балансировку нагрузки. Помни: логирование (/var/log/squid/, /var/log/nginx/) — твой лучший друг при отладке. Удачи в настройке!

Поделиться:
Сохранить гайд? В закладки браузера