Подробный гайд: Настройка FastDL для CS 1.6 через Apache2

Настройка FastDL для CS 1.6 на Apache2: ускорение загрузки карт, моделей, звуков, снижение нагрузки на сервер, правильная отдача контента игрокам по HTTP.

2026.05.12                  


Подробный гайд: Настройка FastDL для CS 1.6 через Apache2Подробный гайд: Настройка FastDL для CS 1.6 через Apache2 FastDL (Fast Download) позволяет игрокам скачивать кастомные карты, модели, звуки и спрайты напрямую с веб-сервера по HTTP, что в разы быстрее стандартной загрузки через игровой сервер. Ниже приведена полная инструкция для настройки на базе Apache2 (Debian/Ubuntu).


Требования

  • VPS/выделенный сервер с Debian/Ubuntu
  • Уже установленный игровой сервер CS 1.6
  • Доменное имя или статический IP (рекомендуется домен с DNS)
  • Порт 80 открыт в фаерволе
  • root или sudo доступ

Важно по HTTPS:

Движок GoldSrc (CS 1.6) использует устаревший HTTP-клиент. HTTPS работает нестабильно на многих современных серверах из-за TLS 1.2/1.3 и шифров. Рекомендуется использовать HTTP. Если нужен HTTPS, потребуется отключить современные шифры и настроить Apache под TLS 1.0/1.1, что снижает безопасность. Для FastDL HTTP считается стандартом.


Шаг 1: Установка Apache2 и включение модулей

sudo apt update
sudo apt install apache2 -y

# Включаем необходимые модули
sudo a2enmod headers expires deflate rewrite mime
sudo systemctl restart apache2

Шаг 2: Создание структуры папок FastDL

FastDL должен зеркалить структуру папок игры. Для CS 1.6 это обычно cstrike/.

sudo mkdir -p /var/www/fastdl/cstrike/maps
sudo mkdir -p /var/www/fastdl/cstrike/models
sudo mkdir -p /var/www/fastdl/cstrike/sound
sudo mkdir -p /var/www/fastdl/cstrike/sprites
sudo mkdir -p /var/www/fastdl/valve  # если нужны файлы из valve/

Правило размещения:

Файл custom_map.bsp кладётся в /var/www/fastdl/cstrike/maps/custom_map.bsp.
Клиент будет запрашивать: http://ваш-домен/cstrike/maps/custom_map.bsp


Шаг 3: Настройка прав доступа

Apache должен иметь права на чтение файлов.

sudo chown -R www-data:www-data /var/www/fastdl
sudo find /var/www/fastdl -type d -exec chmod 755 {} \;
sudo find /var/www/fastdl -type f -exec chmod 644 {} \;

Шаг 4: Создание виртуального хоста Apache

sudo nano /etc/apache2/sites-available/fastdl.conf

Вставьте конфигурацию (замените your_domain_or_ip на ваш домен или IP):

<VirtualHost *:80>
    ServerName your_domain_or_ip
    ServerAdmin admin@your_domain
    DocumentRoot /var/www/fastdl

    <Directory /var/www/fastdl>
        Options -Indexes +FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>

    # Явное указание MIME-типов для файлов CS 1.6
    AddType application/octet-stream .bsp .mdl .wav .spr .res .txt .cfg

    # Логирование (опционально)
    ErrorLog ${APACHE_LOG_DIR}/fastdl_error.log
    CustomLog ${APACHE_LOG_DIR}/fastdl_access.log combined
</VirtualHost>

Активируйте сайт и перезапустите Apache:

sudo a2ensite fastdl.conf
sudo a2dissite 000-default.conf  # если не нужен дефолтный сайт
sudo systemctl reload apache2

Шаг 5: Настройка .htaccess для кэширования и сжатия

Создайте файл в корне FastDL:

sudo nano /var/www/fastdl/.htaccess

Вставьте:

# Отключаем листинг директорий (безопасность)
Options -Indexes

# Включаем сжатие для текстовых и бинарных файлов
<IfModule mod_deflate.c>
    AddOutputFilterByType DEFLATE text/plain text/xml text/css application/javascript application/json application/octet-stream
</IfModule>

# Кэширование на стороне клиента (30 дней)
<IfModule mod_expires.c>
    ExpiresActive On
    ExpiresByType application/octet-stream "access plus 30 days"
    ExpiresByType text/css "access plus 30 days"
    ExpiresByType application/javascript "access plus 30 days"
    Header set Cache-Control "public, max-age=2592000"
</IfModule>

# Разрешаем кросс-доменные запросы (необязательно, но полезно для CDN)
<IfModule mod_headers.c>
    Header set Access-Control-Allow-Origin "*"
</IfModule>

Проверьте, что AllowOverride All указан в конфиге хоста (шаг 4), иначе .htaccess игнорируется.


Шаг 6: Настройка игрового сервера CS 1.6

В server.cfg или в строке запуска добавьте:

sv_allowdownload 1
sv_allowupload 0          # Не включайте! Это дыра в безопасности
sv_downloadurl "http://your_domain_or_ip/"  # ОБЯЗАТЕЛЬНО заканчивайте слешем /
sv_consistency 0          # 1 если используете WHBlocker/Rechecker, иначе 0

Важно:

sv_downloadurl должен указывать на корень FastDL, а не на подпапку cstrike/. Игра сама добавит нужный путь.

Перезапустите сервер CS 1.6.


Шаг 7: Проверка работы

  1. Загрузите тестовый файл, например test.bsp, в /var/www/fastdl/cstrike/maps/test.bsp
2. Откройте браузер:

http://your_domain_or_ip/cstrike/maps/test.bsp - должно начаться скачивание или отобразиться бинарный файл. 3. Зайдите на сервер CS 1.6 с другого ПК/бота.

4. В консоли сервера должны появиться строки:
   Client "Player" downloading cstrike/maps/test.bsp from http://your_domain/
5. Проверьте логи Apache:
   sudo tail -f /var/log/apache2/fastdl_access.log

Типичные проблемы и решения

Проблема Причина Решение
Failed to download в клиенте Нет слеша в sv_downloadurl Добавьте / в конце URL
403 Forbidden Нет прав на чтение или Options -Indexes + запрос папки Убедитесь, что клиент запрашивает файл, а не папку. Права 644/755, владелец www-data
404 Not Found Файл не в той папке или путь не зеркалит cstrike/ Проверьте структуру: /var/www/fastdl/cstrike/maps/map.bsp
Скачивание идёт медленно Нет кэширования/сжатия, слабый сервер Включите mod_deflate, mod_expires, рассмотрите CDN
Клиент не скачивает через HTTPS GoldSrc не поддерживает современные TLS Переключитесь на HTTP или настройте Apache под TLS 1.0 + RC4 (не рекомендуется)
sv_downloadurl игнорируется Сервер запущен без +sv_allowdownload 1 или конфиг не применяется Проверьте server.cfg, перезапустите сервер

Оптимизация и безопасность

1. Отключите логирование запросов к .bsp если место на диске критично:
   SetEnvIf Request_URI "\.bsp$" dontlog
   CustomLog ${APACHE_LOG_DIR}/fastdl_access.log combined env=!dontlog
2. Ограничьте rate-limit (защита от DDoS на загрузки):

Установите mod_evasive или используйте fail2ban для Apache.

3. Используйте CDN (Cloudflare, BunnyCDN):

Настройте Pull Zone на /var/www/fastdl или подключите домен через CDN. Ускорит загрузку для игроков из других регионов.

4. Автообновление карт:

Напишите bash-скрипт, который синхронизирует папку cstrike/ игрового сервера с /var/www/fastdl/cstrike/ через rsync или inotifywait.

5. Резервное копирование:

Регулярно бэкапьте /var/www/fastdl, особенно кастомные модели и звуки.


Итог

  • Apache2 настроен как отдельный виртуальный хост
  • Структура папок зеркалит cstrike/
  • MIME-типы, кэширование и сжатие активны
  • sv_downloadurl указан корректно с / в конце
  • sv_allowupload отключён для безопасности

После применения гайда ваши игроки будут загружать карты за секунды вместо минут, а нагрузка на игровой сервер снизится на 70-90%.