Оптимизация нагрузки на сервер.Скачивание недостающих моделей, карт и звуков через HTTP.

Andrey

пишу код за еду
Сообщения
3,386
Реакции
4,019
  • Команда форума
  • #1
Оптимизация нагрузки на сервер
Скачивание недостающих моделей, карт и звуков через HTTP

Вместо скачивания при соединении дополнительных ресурсов (карт, моделей, звуков и т.д.) напрямую с игрового сервера, в Half-Life теперь поддерживается скачивание с HTTP-сервера (т.е. с веб-сервера).

Преимущества
Скачивание через HTTP имеет три важных преимущества:

  1. Скачивание дополнительных ресурсов не оказывает влияния на игровой сервер, так как передачу файлов осуществляет отдельный веб-сервер с дополнительными ресурсами
  2. Игроки будут закачивать дополнительные ресурсы на максимально возможной для них скорости, что существенно ускорит процесс закачки
  3. Игроки, закачивающие дополнительные ресурсы, не занимают слот на сервере
Описание процесса
Что будут видеть игроки, соединяющиеся с сервером, имеющим дополнительные или недостающие у игрока ресурсы.
Когда игрок соединяется с сервером, имеющим дополнительные ресурсы, произойдет одно из двух:

  1. Если сервер не сконфигурирован на скачивание через HTTP, будет использоваться обычный метод скачивания "струйкой" ;
  2. Если сервер сконфигурирован на скачивание через HTTP, игрок увидит расширенный диалог закачки, и получит гораздо более быстрое скачивание. Пока идет закачка, игрок не соединен с игровым сервером. Как только закачка завершена, игрок автоматически пересоединяется с сервером и может играть.
Настройка сервера для использования быстрого скачивания через HTTP:
1) Создайте список всех нестандартных файлов (bsp, wav, mdl, etc), использующихся на вашем сервере
2) Скопируйте эти файлы на веб-сервер, сохраняя структуру каталогов
3) Необязательно: Для показа баннера игрокам, закачивающим дополнительные ресурсы, положите рисунок в формате GIF (340x56) в директорию путь которой:
C-подобный:
<custom content directory>/gfx/banner.gif
4) Установите серверную переменную sv_downloadurl в
"http://yourserver/custom_content_directory/"
Пример:
Ваш сервер использует нестандартную карту "cs_mansion_bftw_day", которая требует наличия следующих файлов:
C:\Steam\Valve\cstrike\maps\cs_mansion_bftw_day.map
C:\Steam\Valve\cstrike\cs_mansion_bftw_day.wad
C:\Steam\Valve\cstrike\sound\ambience\cs_mansion_bftw_day_a.wav
C:\Steam\Valve\cstrike\sound\ambience\cs_mansion_bftw_day_b.wav
C:\Steam\Valve\cstrike\sound\ambience\cs_mansion_bftw_day_c.wav
Предположим, у вас есть место на веб-сервере с адресом: http://hlmod.ru/~dir, которое вы хотите использовать для хостинга ваших дополнительных ресурсов.
Чтобы сделать это, закачайте файлы, требующиеся для карты cs_mansion_bftw_day на ваш веб-сервер, в созданную директорию cs16, сохраняя структуру подкаталогов.
Теперь
на вашем веб-сервере вы имеете следующие файлы:

Теперь установите серверную переменную:
C-подобный:
sv_downloadurl "http://hlmod.ru/~dir/cs16/"

Теперь игроки, соединяющиеся с вашим сервером, автоматически скачают карту cs_mansion_bftw_day и требующиеся для нее дополнительные файлы с вашего веб-сервера (конечно, если только они еще не имеют этой карты и необходимых файлов)


Также рекомендуется сжимать файлы с помощью архиватора bZip2 который можно скачать по ссылке: http://www.bzip.org
Это намного увеличит скорость скачивания, что безусловно будет приятно игрокам и облегчит нагрузку на ваш сервер.

Технические детали

  • Максимальная длина значения переменной sv_downloadurl - 127 символов
  • Имеется возможность указать имя и пароль для доступа к веб-серверу, в значении переменной sv_downloadurl
  • http://username:password@hlmod.ru/
    • username - имя пользователя
    • password - пароль
      • Замечание - последние заплатки для IE могут отключить эту функциональность
  • Если соединяющийся игрок имеет файл с тем же именем, этот файл не будет переписан, скачивание этого файла будет пропущено
  • Некоторые критические и/или опасные файлы не могут быть скачаны (например: *.exe, *.vbs, etc)
Использование нескольких веб-серверов
В переменную sv_downloadurl можно добавить только один адрес, но имеются возможности делать редиректы с этого адреса если правильно настроить веб-сервер, что существенно снизит нагрузку путем балансировки по нескольким веб-серверам.
Если вам это интересно ознакомьтесь со следующими статьями содержащими примеры:

  1. Для HLDS сервера плагин: Multi FastDownload
  2. [SNIPPET] Multiple Fast Download URLs

При использовании материала ссылка на hlmod.ru обязательна.
 

Вложения

  • multidl.php.7z
    1.7 КБ · Просмотры: 295
Последнее редактирование:

Mavrick

Участник
Сообщения
1
Реакции
1
Ответ: Оптимизация нагрузки на сервер.Скачивание недостающих моделей, карт и звуков через HTTP.

Спасибо за мануал.

А что будет, если допустим часть файлов находится на веб-сервере, а часть непосредственно на сервере? Будет ли клиент качать и с веб-сервера и с hlds?
 
  • Мне нравится
Реакции: BASS

Andrey

пишу код за еду
Сообщения
3,386
Реакции
4,019
  • Команда форума
  • #3
Ответ: Оптимизация нагрузки на сервер.Скачивание недостающих моделей, карт и звуков через HTTP.

А что будет, если допустим часть файлов находится на веб-сервере, а часть непосредственно на сервере? Будет ли клиент качать и с веб-сервера и с hlds?
Да, те файлы которых нет на веб-сервере клиент будет скачивать с сервера.
Переменная sv_allowdownload должна быть установлена в значение 1.
 

FYNT

Участник
Сообщения
34
Реакции
5
Ответ: Оптимизация нагрузки на сервер.Скачивание недостающих моделей, карт и звуков через HTTP.

Спасибо за мануал , очень полезен и увеличивает скорость скачки в несколько раз ! А кто нибуть может потсказать халявный фтп , для заливки файлов ?
 

FYNT

Участник
Сообщения
34
Реакции
5
Ответ: Оптимизация нагрузки на сервер.Скачивание недостающих моделей, карт и звуков через HTTP.

Привет всем , коль на мой вопрос нет ответа ! Спрошу тогда по другому , у меня есть выделенный айпи и комп постоянно работает ! Можно ли мне зделать папку кс и зделать скачку через комп а не через кс ?!
 

Andrey

пишу код за еду
Сообщения
3,386
Реакции
4,019
  • Команда форума
  • #6
Ответ: Оптимизация нагрузки на сервер.Скачивание недостающих моделей, карт и звуков через HTTP.

Можно с помощью веб-сервера, или этой программой www.rejetto.com/hfs
 

FYNT

Участник
Сообщения
34
Реакции
5
Ответ: Оптимизация нагрузки на сервер.Скачивание недостающих моделей, карт и звуков через HTTP.

Спасибо тебе огромное =)) Щас затестим =))
 

FYNT

Участник
Сообщения
34
Реакции
5
Ответ: Оптимизация нагрузки на сервер.Скачивание недостающих моделей, карт и звуков через HTTP.

Помогите плиз , как мне для сорса прописать лучше ссылку !?
 

adacer

Участник
Сообщения
145
Реакции
14
4) Установите серверную переменную sv_downloadurl в
"http://yourserver/custom_content_directory/"

Можно пожалуйста попроще что куда устанавливать? в каком файле ?
 

MihaNN52

Участник
Сообщения
3
Реакции
0
могу найти халявный веб с хорошей скоростью icq241615153 сам юзаю)
 

Dimasty

Участник
Сообщения
3
Реакции
0
Класная вещь, давно пользуюсь, вот только не скачивает клиенту файлы с сервера, если их недостаёт на хосте(((. Если кто в курсе - подскажите плз. аловаплоад -довнлоад в 1
 

DrJekil

Участник
Сообщения
296
Реакции
6
как поставить свой баннер при загрузке?
 

Andrey

пишу код за еду
Сообщения
3,386
Реакции
4,019
  • Команда форума
  • #15
как поставить свой баннер при загрузке?
В какой игре? Если в 1.6, то это нужно прописывать в клиентской части, а не на серверной.
Вообщем про замену баннера:
====== Полная инструкция [Content Hosting Provided by] ====== Внимание! Данная информация была опубликована впервые на форуме Reallite!
от 03.04.07. Тем самым источник является данный форум!
======================================================
…И так после многочисленных тестов я определил следующее, а это следующее работает на 100 %.
[==============================================================]
[NON-STEAM] CONTENT HOSTING PROVIDED BY:
[==============================================================]
1) Создайте директорию в своём хостинге: «cstrike/gfx», и поместите туда следующий файл: «steam_banner.gif» (разрешение файла должно быть 340X56)!
2) Теперь создайте html страничку только следующего образца:
===============================================================
<body topmargin="0" leftmargin="0" marginwidth="0" marginheight="0" style="margin: 0px" bgcolor="#000000">
<html>
<a href="http://www.reallite.cs2.ru/cstrike/gfx/" target="_new"><img border="0" src="steam_banner.gif"></a>
</html>
</body>
================================================================
НЕЧЕГО НЕ РЕДАКТИРУЙТЕ, кроме адреса хостинга. Вместо этого: «www.reallite.cs2.ru» впишите url своего хостинга. Например: «www.reallite.cs2.ru»
А на полном примере: «www.reallite.cs2.ru/cstrike/gfx/»
3) Поместите html страничку в туже директорию «cstrike/gfx». В сумме у Вас должно получиться так: «cstrike\gfx\steam_banner.gif» и
«cstrike\gfx\steam_banner.html»
====================================================================
4) Внимательно читайте ещё несколько раз и досконально перепроверяйте!
====================================================================
5) Создаём файл реестра:
====================================================================
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Valve\Steam]
"LastContentProviderURL"="http://www.reallite.cs2.ru/cstrike/gfx/steam_banner.html"
====================================================================
ДЕЛАЙТЕ ВСЁ ТОЧНО ТАКЖЕ, где «www.reallite.cs2.ru» адрес Вашего хостинга.
6) P.S, Данный импорт реестра должны ввести все игроки Вашего сервера.
Иначе они ничего кроме Вас не увидят!
===================================================================
Ну вот и всё…
При точных действиях выполняемых Вами по инструкции, могу дать 100 % гарантию отображения Вашего рекламного баннера при скачивании файлов с сервера....
[=======================================================]
[STEAM] CONTENT HOSTING PROVIDED BY:
[=======================================================]
================================================================================
=
Этот же баннер будет отображаться и при подключении ко всем серверам Steam Counter-Strike.
================================================================================
 

DrJekil

Участник
Сообщения
296
Реакции
6
А у меня как-то сам появлялся баннер, когда на другие серваки заходил...
 

DrJekil

Участник
Сообщения
296
Реакции
6
и я не понял, что за страничку надо создать?
 

DrJekil

Участник
Сообщения
296
Реакции
6
а что за страничку надо создать? я не понял.
 

Andrey

пишу код за еду
Сообщения
3,386
Реакции
4,019
  • Команда форума
  • #19
Теперь создайте html страничку только следующего образца:
================================================== =============
<body topmargin="0" leftmargin="0" marginwidth="0" marginheight="0" style="margin: 0px" bgcolor="#000000">
<html>
<a href="http://www.reallite.cs2.ru/cstrike/gfx/" target="_new"><img border="0" src="steam_banner.gif"></a>
</html>
</body>
================================================== ==============
НЕЧЕГО НЕ РЕДАКТИРУЙТЕ, кроме адреса хостинга. Вместо этого: «www.reallite.cs2.ru» впишите url своего хостинга. Например: «www.reallite.cs2.ru»
А на полном примере: «www.reallite.cs2.ru/cstrike/gfx/»
 
Сверху Снизу