ЗАКРЫТЬ
Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Новости

17-апр
30-дек
29-дек
26-дек

3 страниц V   1 2 »

Правильная настройка FastDL на VDS

Статус пользователя Fire
сообщение 10.10.2014, 18:43
Сообщение #1


Иконка группы

Стаж: 8 лет 1 месяц

Сообщений: 1961
Благодарностей: 1970
Полезность: 1238

multiplay.ru
Вобщем, появилось малеха времени написать ман, по правильному поднятию FastDL, с помощью nginx.
Для начала, почему-же nginx? - Он быстрый, менее подвержен атакам (http flood) и куда менее требователен к ресурсам, нежели apache

Установка будет рассмотрена на примере Debian 6 (Так-же, ниже будут дубли команд для CentOS)
Итак, логинимся на VDS под рутом и начинаем!

1)
Debian:
Код
apt-get update
apt-get install -y nginx


CentOS:
Код
yum install -y nginx


Переходим в директорию nginx:
Код
cd /etc/nginx

Удаляем готовый шаблон virtual'a, мы будем настраивать все в основном конфиге, что-бы все было под рукой.
Код
rm -f sites-available/default


Используя удобный для вас текстовый редактор, открываем nginx.conf (я предпочитаю nano)
Код
nano nginx.conf

И приводим его к такому виду:
Скрытый текст
Код
user root;
worker_processes  1;

error_log  /var/log/nginx/error.log;
pid        /var/run/nginx.pid;

events {
    worker_connections  1024;
    use epoll;
}

http {
    include       /etc/nginx/mime.types;

    access_log  /var/log/nginx/access.log;

    sendfile        on;
    tcp_nopush     on;
    keepalive_timeout  15;
    tcp_nodelay        on;
    directio 5m;
    expires max;

    include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-enabled/*;

    server {
        #listen 80;
        location / {
                root   /var/www/;
                index  index.html index.htm;
                set $limit_rate 3m; #ограничиваем скорость скачивания до 3мбайт
        }
        location ~ /(.*)/.*\.cfg { # запрещаем скачивать cfg файлы
                deny all;
        }
        location ~ /(.*)/addons/ { # запрещаем доступ к addons
                deny all;
        }
        location ~ /(.*)/logs/ { # запрещаем доступ к addons
                deny all;
        }
     }

}



Далее создаем www директорию:
Код
mkdir /var/www


А вот теперь, делаем хитрый финт ушами, мы же не хотим вручную заливать файлы в /var/www ?, поэтому создаем симп-линк с директории cstrike вашего сервера в директорию /var/www
Код
ln -s /путь/к/cstrike /var/www/ИМЯ_ЛИНКА

На примере:
Код
ln -s /home/hlds/cstrike /var/www/fast

Если у вас несколько серверов, делаем так:
Код
ln -s /home/hlds_zobbie/cstrike /var/www/zm
ln -s /home/hlds_pub/cstrike /var/www/pub

И т.д. Пути к серверам само-собой указываете свои.

Перезапускаем nginx
Код
/etc/init.d/nginx restart


Теперь файлы можно скачивать по ссылкам:
Код
http://IP/fast/maps/de_dust2.bsp

Где fast само собой ваши имена линков.

Ну и добавляем в server.cfg:
Код
sv_downloadurl "http://IP/ИМЯ_ЛИНКА/"
sv_allowdownload 1


Усе, конец.

ps\\ Конфиг прикреплен.
Прикрепленный файл  nginx.rar ( 568 байт ) Кол-во скачиваний: 316


PS\\ При копировании материала ссылка на c-s.net.ua и dedicated-server.ru обязательна!


Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя XyLiGaN
сообщение 10.10.2014, 18:44
Сообщение #2


Иконка группы

Стаж: 4 года 9 месяцев
Город: Югорск

Сообщений: 10623
Благодарностей: 6182
Полезность: 1748

Меценат Меценат

Fire,
Поправь
на VSD
=>
на VDS


Установка/Настройка/Обновление - Серверов/Модов/Плагинов: перейти
Другие полезные ссылки по форуму: перейти
Российский Паблик Сервер 18+ © - Тема сервера
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя tirnovan
сообщение 10.10.2014, 19:58
Сообщение #3


Стаж: 5 лет

Сообщений: 4
Благодарностей: 1
Полезность: 0

Молодец! clapping.gif
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя sambo
сообщение 10.10.2014, 21:46
Сообщение #4


Стаж: 5 лет 4 месяца

Сообщений: 844
Благодарностей: 199
Полезность: 476

2 Вопроса:
1 Есть ограничение на одновременное скачивание файла несколькими клиентами ?
2 Можно зделать рандомный сим линк ? Например , ссылка перекидовала рандомно на несколько других папок .
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Fire
сообщение 10.10.2014, 22:39
Сообщение #5


Иконка группы

Стаж: 8 лет 1 месяц

Сообщений: 1961
Благодарностей: 1970
Полезность: 1238

multiplay.ru
Цитата(sambo @ 10.10.2014, 22:46) *
2 Вопроса:
1 Есть ограничение на одновременное скачивание файла несколькими клиентами ?
2 Можно зделать рандомный сим линк ? Например , ссылка перекидовала рандомно на несколько других папок .

1) Нет.
2) Сам симплинк так не умеет, можно сделать, но дикими граблями, не понимаю смысла этого.


Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Safety1st
сообщение 10.10.2014, 22:46
Сообщение #6
Стаж: 5 лет 6 месяцев

Сообщений: 6823
Благодарностей: 7779
Полезность: 718

В плане рандомности актуальнее гайд против бага с FDL (когда клиенты после ручной отмены загрузки и последующего переподключения к серверу грузят файлы напрямую), чтобы игровой сервер в URL включал рандомную часть (модуль есть на это), а web-сервер её игнорил:
Код
http://asd.ru/fdl/DF23461/cstrike
http://asd.ru/fdl/32G2RYR/cstrike

Идея by Lev.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя xakep7
сообщение 10.10.2014, 22:51
Сообщение #7


Стаж: 5 лет 5 месяцев

Сообщений: 503
Благодарностей: 468
Полезность: 938

Как я уже говорил на дефолте. Лучше юзать lighttpd для такого. Ибо он еще быстрее nginx и жрет меньше.

Пример конфига:
Код
$HTTP["host"] == "fast-download.domain.ru" {
    server.document-root = "/var/www/"
    $PHYSICAL["path"] =~ "(~|\.cfg)$" {
        access.deny-all = "enable"
    }
    $PHYSICAL["path"] !~ "^/путь_от_корня/addons/" {
        access.deny-all = "enable"
    }
}

как-то так.

Отредактировал: xakep7, - 10.10.2014, 22:59
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Fire
сообщение 10.10.2014, 23:19
Сообщение #8


Иконка группы

Стаж: 8 лет 1 месяц

Сообщений: 1961
Благодарностей: 1970
Полезность: 1238

multiplay.ru
Лайти развивается как полноценный веб, что делает его в некоторых моментах тяжелее, nginx куда больше держит rq\s, у него куда лучше модуль rewrite, лайти не умеет нормально резать скорость и делать лимиты, да и в целом, нжиникс куда более функционален.
Да и вообще, ман про nginx, лайти тут немного не в тему.

ps\\ лайти быстрее на доли секунды, да и жрет он столько-же.


Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя xakep7
сообщение 10.10.2014, 23:32
Сообщение #9


Стаж: 5 лет 5 месяцев

Сообщений: 503
Благодарностей: 468
Полезность: 938

Цитата(Fire @ 11.10.2014, 4:19) *
Лайти развивается как полноценный веб, что делает его в некоторых моментах тяжелее, nginx куда больше держит rq\s, у него куда лучше модуль rewrite, лайти не умеет нормально резать скорость и делать лимиты, да и в целом, нжиникс куда более функционален.
Да и вообще, ман про nginx, лайти тут немного не в тему.

ps\\ лайти быстрее на доли секунды, да и жрет он столько-же.

Не соглашусь т.к. тестировал то и то в реальных условиях.
Если nginx обработал 4000 rq/s динамики, то lighttpd обработал ~5500 rq/s. lighttpd умеет резать скорость и ставить лимиты.
Как по мне, то lighttpd лучше/проще в плане настройки/производительности и т.п для highload и отдачи статики чем nginx. Nginx же выигрывает в плане кол-ва модулей и развитости под разные сферы (к примеру rtmp/tcp модули).

Для тестирования использовался конфиг:
AMD Athlon x4 760k
16 Gb Ram
128 Gb SSD

Отредактировал: xakep7, - 10.10.2014, 23:34
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 2 раз
   + Цитировать сообщение
Статус пользователя sambo
сообщение 11.10.2014, 20:32
Сообщение #10


Стаж: 5 лет 4 месяца

Сообщений: 844
Благодарностей: 199
Полезность: 476

Цитата(Fire @ 10.10.2014, 22:39) *
не понимаю смысла этого.

Ну на пример сам жосткий сможет отдавать быстро одновременно файл 32 игрокам?
Safety1st,
Можно ссылку на модуль или статью . В паблике есть обычный плагин который рандомно меняет ссылку быстрой скачки. Работал долго и уверенно у меня в свое время.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Safety1st
сообщение 11.10.2014, 20:52
Сообщение #11
Стаж: 5 лет 6 месяцев

Сообщений: 6823
Благодарностей: 7779
Полезность: 718

HTTP Resources Manager от Arkshine.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя mazdan
сообщение 11.10.2014, 21:27
Сообщение #12


Иконка группы

Стаж: 6 лет 6 месяцев

Сообщений: 6943
Благодарностей: 5097
Полезность: 1230

Safety1st, так если я верно понимаю смена dowloadurl не помогает для включения быстрой закачки, помогает реконнект на "другой айпи"
А смена - просто для распределения нагрузки сделана и клиенту тупо насрать на адрес, который ему сервер пришлет, он типа один раз уже пробовал и не вышло и хватит :)


Не пишите мне в ЛС. Пишите на почту. В ЛС я пропускаю сообщения.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Safety1st
сообщение 11.10.2014, 21:39
Сообщение #13
Стаж: 5 лет 6 месяцев

Сообщений: 6823
Благодарностей: 7779
Полезность: 718

Сам я не проверял.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Fire
сообщение 11.10.2014, 21:55
Сообщение #14


Иконка группы

Стаж: 8 лет 1 месяц

Сообщений: 1961
Благодарностей: 1970
Полезность: 1238

multiplay.ru
Цитата(sambo @ 11.10.2014, 21:32) *
Ну на пример сам жосткий сможет отдавать быстро одновременно файл 32 игрокам?

Файл будет отдаваться с кеша


Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя csnet
сообщение 11.10.2014, 22:40
Сообщение #15
Стаж: 3 года 4 месяца

Сообщений: 4025
Благодарностей: 3505
Полезность: 715

мне кажется вам надо смотреть в сторону ++канала, а не лучшего вебсервера
там и обычный справится
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя MisterFake
сообщение 15.10.2014, 4:05
Сообщение #16


Стаж: 3 года 3 месяца

Сообщений: 93
Благодарностей: 28
Полезность: 214

Метод имеет брешь в безопасности - возможно слить любые файлы с сервера, конфиги например, а не только ресурсы игровые

Отредактировал: MisterFake, - 15.10.2014, 4:05
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя S0m3Th1nG_AwFul!
сообщение 15.10.2014, 4:53
Сообщение #17
Стаж: 6 лет 8 месяцев

Сообщений: 454
Благодарностей: 323
Полезность: 961

Цитата(MisterFake @ 15.10.2014, 6:05) *
Метод имеет брешь в безопасности - возможно слить любые файлы с сервера, конфиги например, а не только ресурсы игровые

А эта часть конфига из спойлера в первом посте
Код
        location ~ /(.*)/.*\.cfg { # запрещаем скачивать cfg файлы
                deny all;
        }
        location ~ /(.*)/addons/ { # запрещаем доступ к addons
                deny all;

тебе ни о чём не говорит?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя MisterFake
сообщение 15.10.2014, 5:36
Сообщение #18


Стаж: 3 года 3 месяца

Сообщений: 93
Благодарностей: 28
Полезность: 214

Каюсь, не заметил.
Однако маски эти несколько смущают.

Я бы всё таки поступил параноидально и запретил бы всё, кроме разрешений ресурсов игры.

По поводу спора о второй попытки подключиться - если есть возможность - использовать облака кэширующие

Отредактировал: MisterFake, - 15.10.2014, 5:40
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 3 раз
   + Цитировать сообщение
Статус пользователя mazdan
сообщение 15.10.2014, 9:08
Сообщение #19


Иконка группы

Стаж: 6 лет 6 месяцев

Сообщений: 6943
Благодарностей: 5097
Полезность: 1230

ну там еще надо как минимум запретить log файлы качать


Не пишите мне в ЛС. Пишите на почту. В ЛС я пропускаю сообщения.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя evil
сообщение 19.11.2014, 9:03
Сообщение #20


Стаж: 5 лет 1 месяц

Сообщений: 1418
Благодарностей: 455
Полезность: 605

Меценат Меценат

Как решить Это?
Код
403 Forbidden

nginx/1.2.1
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
3 страниц V   1 2 »
 
Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: