Привет! Сегодня я так же подробно, как и в первой статье, покажу, как поднять свой FastDL-сервер на Debian-подобных системах.
Установка и настройка nginx
Сначала качаем сам nginx:
sudo apt install nginx
Теперь нужно создать директорию для контента.
nginx по дефолту считает за рут директорию /var/www/html, но я предлагаю использовать /var/www/fastdl/tf. Создаем:
sudo mkdir /var/www/fastdl sudo mkdir /var/www/fastdl/tf
Теперь переходим к настройке nginx. Все конфиги находятся по пути /etc/nginx. Главный конфиг - nginx.conf, его трогать не будем. Все дополнительные конфиги находятся по пути /etc/nginx/sites-enabled/ – туда мы и поместим наш конфиг.
Удаляем стандартный конфиг:
sudo rm /etc/nginx/sites-enabled/default
Создаем свой:
sudo nano /etc/nginx/sites-enabled/fastdl.conf
Вставляем это:
server { listen 27000 default_server; #Слушаем 27000 порт server_name <ip_адресс_сервера>; #Ставим имя сервера как ip location / { #Для локации "/" (http://<ip_адрес>/) будут действовать следующие правила root /var/www/fastdl; #Устанавливаем локацию /var/www/fastdl как корень для локации "/" } }
Перезагружаем:
sudo service nginx restart
Это все. Основной конфиг редактировать не надо.
Настройка игрового сервера
На игровом сервере открываем конфиг server.cfg. Добавляем это:
sv_allowdownload 1 // Разрешает клиенту скачивать файлы с сервера net_maxfilesize 100 // Максимально разрешенный размер файла в мегабайтах sv_downloadurl "http://<ip_сервера>:27000/tf" // Ссылка на FastDL-сервер
Теперь или перезагружаем сервер, или переподключаем конфиг:
exec server //Или как он там у вас называется
Ну вот и все, стандартный FastDL-сервер работает!
Если нужно добавить карту на сервер, то закидываем ее в папку maps на игровом сервере и кидаем в папку maps по пути /var/www/fastdl/tf/maps.
Также для дополнительного ускорения загрузки можно использовать сжатие bzip2:
bzip2 <название_карты>
Настройка SSL и firewall
Дополнительная часть. Сделать SSL можно, если у вас есть домен.
Качаем certbot:
sudo apt install certbot sudo apt install python3-certbot-nginx
Теперь нужно в самый низ конфига nginx добавить это:
server { listen 80 default; server_name <ДОМЕН>; }
<ДОМЕН> замените на ваш домен.
Запускаем:
sudo certbot --nginx
Проходим все инструкции, которые дает certbot.
После этого certbot добавит в наш конфиг редирект с 80 на 443 порт:
server { if ($host = <ДОМЕН>) { return 301 https://$host$request_uri; } # managed by Certbot listen 80 default; server_name <ДОМЕН>; }
Так как мы используем 27000 порт, то удаляем и комментируем все, что осталось.
Должно получиться так:
#server { # listen 80 default; # server_name <ДОМЕН>; #}
И еще нужно изменить конфиг, который добавили ранее. Результат:
server { listen 27000 ssl; #Слушаем 27000 порт с SSL server_name <ДОМЕН>; #Ставим имя сервера как домен location / { #Для локации "/" (https://<ip_адрес>/) использовать следующие правила ssl on; #Включает SSL #Следующие три – это файлы с ключами ssl_certificate /etc/letsencrypt/live/<ВАШ_ДОМЕН>/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/<ВАШ_ДОМЕН>/privkey.pem; ssl_dhparam /etc/letsencrypt/ssl-dhparams.peml; root /var/www/fastdl; #Устанавливаем локацию /var/www/fastdl как рут для локации "/" } }
Сохраняем и перезагружаем nginx:
sudo service nginx restart
Теперь у нас есть работающий SSL на веб-сервере.
В последнюю очередь в конфиге на игровом сервере меняем sv_downloadurl:
sv_downloadurl "https://<ДОМЕН>:27000/tf" //Ссылка на FastDL-сервер
Ставим firewall (ufw)
Устанавливаем:
sudo apt install ufw
Добавляем правила:
sudo ufw allow 27000 sudo ufw allow <порт_игрового_сервера_(если_есть)> sudo ufw allow <rcon_порт_(если_есть)> sudo ufw allow <ssh_порт_(по_стандарту_22)>
Активируем:
sudo ufw enable
Ну вот и все! У вашего сервера теперь есть свой FastDL, и клиентам не придется ждать долгой загрузки контента.
Если что-то не работает, то пишите в комментариях, я попытаюсь решить вашу проблему. До новых встреч!
Комментарии