Сегодня мы поговорим о web-сервер thttpd. Это один из самых лёгких веб серверов. Он даже умеет раздавать php-cgi, но в рамках данной статьи нам этого не нужно.
То есть при наличии каталогов domain.ru, example.ru и debian.pro в каталоге /home/user thttpd будет отзываться по 3м доменам, направляя пользователей в разные каталоги. Не забывайте, что www.debian.pro и debian.pro с точки зрения веб-сервера (любого!) — это разные домены, до тех пор, пока мы не объясним им, что эти домены — это один сайт.
Ну и напоследок. В убунте есть файл /etc/thttpd/thttpd.conf. Я не проверял его наличие в debian.
В нём есть интересные директивы, например:
port=80
dir=/var/www
chroot
#vhost (или #novhost)
user=www-data
Директивы из этого файла перечитываются при выполнении команды /etc/init.d/thttpd и при рестарте сервера. Будьте внимательны.
UPD: в комментариях указан ещё более быстрый вариант «расшарить папку по http».
Источник: debian.pro
Как раздать Интернет в две подсети?
Терабайты файлов веб-проекта — храним и раздаем
В последнее время наметился интересный тренд — быстрое «распухание» веб-проектов до бесконечности. Объем данных многих популярных сайтов растет все быстрее и быстрее, их нужно куда-то девать, при этом эффективно бэкапить (весело будет, если файлы на 500Т потеряются 🙂 ), и конечно супербыстро раздавать клиентам, чтобы все их могли качать, качать, качать… на высокой скорости.
Для системного администратора задача даже редкого, ежедневного резервного копирования такого объема файлов навевает мысли о суициде, а менеджер веб-проекта просыпается в холодном поту от мысли о предстоящей профилактике датацентра на 6 часов (чтобы файлы перевести из одного датацентра в другой нужно пару раз загрузить багажник автомобиля винчестерами 🙂 ).
Коллеги с умным видом советуют приобрести одно из решений от NetApp, но, жаль, что бюджет у проекта в 1000 раз меньше, это вообще стартап… что делать будем?
В статье хочу разобрать частые кейсы дешевого и дорогого решения данной задачи — от простого к сложному. В конце статьи расскажу как задача решена в нашем флагманском продукте — всегда полезно сравнивать opensource-решения с коммерческими, мозгам нужна гимнастика.
Доступ в гардероб HighLoad
Если Вы хоть раз посещали конференцию HighLoad, то наверняка знаете, что на входе нужно обязательно ответить на вопрос — почему ставят nginx перед apache? Иначе дальше гардероба не пройти 😉
Правильно, nginx или аналогичный обратный прокси позволяет эффективно раздавать файлы, особенно по медленным каналам, серьезно снижая нагрузку на сервер и повышая в целом производительность веб-приложения: nginx раздает кучу файлов, apache или php-fpm обрабатывают запросы к серверу приложений.
Установка программ с помощью GPO
Такие веб-приложения живут хорошо, пока объем файлов не увеличивается до, скажем десятков гигабайт — когда несколько сотен клиентов начинают одновременно скачивать файлы с сервера, а памяти для кэширования файлов в ОЗУ недостаточно — диск, а потом и RAID — просто умрет.
Сервер статики
Примерно на этом этапе нередко начинают сначала фиктивно, затем физически раздавать статические файлы с другого, желательно не отдающего много лишних cookies, домена. И это правильно — всем известно, что браузер клиента имеет ограничение на число коннектов в одному домену сайта и когда сайт вдруг начинает отдавать себя с двух и более доменов — скорость его загрузки в браузер клиента существенно возрастает.
- www.mysite.ru
- img.mysite.ru
- js.mysite.ru
- css.mysite.ru
- download.mysite.ru
- и т.п.
Чтобы более эффективно раздавать статику с разных доменов, ее выносят на отдельный сервер(а) статики:
Полезно на этом сервере использовать режим кэширования nginx и «быстрый» RAID (чтобы побольше клиентов требовалось для постановки диска «на колени»).
CDN — раздача
- Ценный клиент начал качать файл с московского сервера из Владивостока, да не из города, а с борта своей яхты. Канал конечно получился узкий.
- Случилась беда и уборщица случайно выдернула шнур питания из сервера раздачи статики, оборвав 10000 клиентов, качающих новый дистрибутив. Ну или в датацентре началась и «неизвестно» когда окончится профилактика — а точнее работы по поиску причины одновременного выхода из строя трех дизельных генераторов из двух.
- Наоборот, мог случиться такой наплыв клиентов, что стало не хватать серверной мощности раздавать одновременно столько статики, либо уже каналы загружены до предела.
В общем все понимают, что нужно быть как можно ближе к клиенту и отдавать клиенту столько статики, сколько он хочет, на максимально возможной быстрой скорости, а не сколько мы можем отдавать со своего сервера(ов).
Эти задачи в последнее время начала эффективно решать технология CDN.
Ваши файлы действительно становятся доступны клиенту на расстоянии вытянутой руки, откуда бы он их не начал качать: с Красной площади или с Сахалина — файлы будут отдаваться с ближайших ему серверов провайдера CDN.
«Вертикальное» масштабирование раздачи статики
На этом этапе веб-проект — постепенно распухает. Вы копите все больше и больше файлов для раздачи, храня их, можно сказать, централизованно в одном ДЦ на одном или группе серверов. Делать резервную копию такого количества файлов становится все дороже, дольше и сложнее. Полный бэкап делается неделю, приходится делать снепшоты, инкременты и прочие вещи, увеличивающие риск суицида.
Вы боитесь подумать о следующем:
- Рассыпятся диски на файловом хранилище (рейд10 может умереть, забрав с собой сразу пару зеркальных дисков и это — случается не очень редко) и придется доставать файлы из бэкапа в течении… двух-трех недель.
- В датацентре наконец-то научились считать количество дизель-генераторов, однако вас с утра обрадовали сообщением, что диски рассыпались, а ваши бэкапы в результате ошибки софта — безвозвратно повреждены (такое в амазоне с нами один раз произошло).
- Пройдет рекламная акция и начнется наплыв клиентов из Дальнего Востока или из Европы — и вы не справитесь с эффективной раздачей такого количества статики.
Да и вообще, вы вложили в инфраструктуру уже столько денег, а риски, причем немалые — остаются. Как-то нечестно получается.
Кружочки и колесики — распределенная файловая система
В этот момент у многих отключается левое, ответственное за логику, полушарие и их тянет к таинственным монстроподобным решениям — развернуть в нескольких датацентрах свою распределенную файловую систему. Возможно для проекта с большим бюджетом это будет выходом…
Тогда придется все это хозяйство администрировать самостоятельно, что потребует наличие видимо целого отдела эксплуатации 🙂
Виртуальная файловая система
Одним из наиболее эффективных и, что важно, дешевых решений, является использование возможностей известных облачных провайдеров, дающих в аренду по очень вкусным, особенно при большом объеме данных, ценам, способ хранить неограниченный объем ваших файлов в облаке с очень высокой надежностью (гигантский DropBox). Провайдеры организовали на своих мощностях описанные выше распределенные файловые системы, высоконадежные и размещенные в нескольких датацентрах, разделенных территориально. Более того, эти сервисы, как правило, тесно интегрированы в сеть CDN данного провайдера. Т.е. вы будете не просто удобно и дешево хранить свои файлы, но и их максимально удобно для клиента раздавать.
Дело за малым — нужно настроить на своем веб-проекте прослойку или виртуальную файловую систему (или аналог облачного диска). Среди бесплатных решений можно выделить FUSE-инструменты (для linux) типа s3fs.
Однако, чтобы перевести текущее веб-приложение на эту дешевую и очень эффективную с точки зрения бизнеса технологию, нужно попрограммировать и внести ряд изменений в существующий код и логику приложения.
Модуль «Облачные хранилища» платформы «1С-Битрикс»
В нашем продукте мы тщательно проанализировали вышеописанные кейсы веб-проектов, которым нужно быстро доставлять файлы клиентам, а иногда файлов — терабайты и более и реализовали данные возможности «из коробки» в модуле «Облачные хранилища».
Мне честно нравится, что можно хранить данные отдельных модулей системы… в разных облачных хранилищах :-). Это реально диверсифицирует ваше файловое хранилище. Можно их раскидать в зависимости от адреса или типа клиента. Либо от типа информации — кто-то эффективно отдает легкую статику, кто-то тяжелый контент.
Итоги
Не важно, на чем вы пишите веб-проект — рано или поздно обязательно столкнетесь с леденящей душу проблемой лавинообразного увеличения объема файлов для хранения и раздачи и должны будете принять верное архитектурное решение.
В статье мы рассмотрели основные этапы и принципы организации раздачи файлов на веб-решениях любого размера, взвесили плюсы и минусы, посмотрели как это реализовано в платформе «1С-Битрикс». С учетом того, что объем раздаваемой веб-проектами информации очень быстро растет, данные знания актуальны и обязательно пригодятся как архитекторам веб-приложений, так и менеджерам проектов.
И конечно приглашаю всех на наш облачный сервис «Битрикс24», в котором мы активно используем вышеописанные технологии. Всем удачи!
- кластер
- распределенные файловые системы
- битрикс
- амазон
- битрикс24
- Блог компании Битрикс24
- Разработка веб-сайтов
Источник: habr.com
Что такое FTP сервер и как его настроить
Основное назначение FTP сервера – это передача файлов по сети. Дома его используют для обмена фотографиями и другими данными между друзьями и родственниками. На предприятии – для обмена документами и другой служебной информацией между филиалами. При этом располагаться на FTP серверах могут большие файлы, которые не отправишь по e-mail. Этот протокол передачи данных также используется для загрузки контента на сервер web-сайта.
Содержание
- Определение
- Применение и принцип работы
- Создание и настройка
- FTP в windows
- Filezilla server
- Создание правил проброса портов на роутере
- Как подключиться
- Через проводник Windows
- Через любой браузер
- С помощью Filezilla
Определение
Сначала давайте разберёмся, что такое FTP сервер. FTP (file transfer protocol протокол передачи файлов) – это протокол, обеспечивающий удалённую передачу данных по сети интернет. Он построен на клиенте серверной архитектуры и использует разные каналы для обмена командами и данными. При этом для передачи используется одно соединение, которое стандартно устанавливается через 21 TCP-порт.
Каналов для обмена данными может быть несколько, поэтому во время одного сеанса можно одновременно передавать и принимать файлы. Для каждого канала, используемого для обмена данными, открывается отдельный TCP-порт.
Применение и принцип работы
При подключении к FTP клиент и сервер создают сессию, которая остаётся активной на протяжении всего сеанса обмена файлами.
Существуют два режима работы данного протокола:
- В активном режиме клиент подключается к серверу и передаёт ему свой IP-адрес и порт, через который будет обмениваться данными. Сервер подключается к заданному узлу и начинается обмен данными.
- Пассивный режим применяется в том случае, когда клиент защищён сетевым экраном и не может принять входящее подключение. В этом клиент отправляет специальную команду, в ответ на которую сервер шлёт свой IP-адрес и TCP-порт. После этого клиент устанавливает сеанс связи с сервером и начинается обмен информацией.
Обмен данными может осуществляться в одном из режимов:
- в поточном режиме данные передаются сплошным потоком, протокол её не обрабатывает;
- при передаче в блочном режиме протокол делит передаваемые данные на блоки, в каждый из которых входит заголовок, размер и информация.
Аутентификация клиента происходит по следующей схеме, сначала клиент отсылает логин и пароль пользователя, на сервере эта информация проверяется и если пользователь с данным логином и паролём существует, то соединение устанавливается. Кроме этого можно настроить анонимный доступ к FTP.
Создание и настройка
Установить FTP-сервер на ПК может любой пользователь, даже чайник. Это можно сделать либо средствами операционной системы, либо с помощью сторонних программ, таких как Filezilla server.
FTP в windows
В Windows 7 есть все для того, чтобы установить и настроить FTP сервер, ничего дополнительно устанавливать не придётся. На более новых версиях этой системы все делается аналогично.
Чтобы сделать ФТП сервер на компьютере:
- Кликните по кнопке «Пуск», откройте «Панель управления» и выберите строку «Программы и компоненты».
- Выберите ссылку «Включение или отключение компонентов Windows», откройте пункт «Службы IIS», поставьте галочку в строке «FTP-сервер» и всех его подпунктах.
- Зайдите в меню «Администрирование» на панели управления.
- Откройте «Диспетчер служб IIS».
- Кликните по строке «Сайты», расположенному в правой части окна, и нажмите «Добавить FTP-сервер».
- Задайте имя соединения и путь к общей папке, через которую вы будете обмениваться данными.
- Введите IP-адрес, номер порта и параметры шифрования (можно настроить, как на рисунке).
- Настройте доступ (анонимный – без пароля, обычный – нужно будет ввести имя и пароль).
- Зайдите в «Панель управления», откройте «Система и безопасность» и выберите «Брандмауэр Windows».
- В левом меню выберите пункт «Дополнительные параметры».
- Кликните по строке «Правила для входящих подключений», которая находится слева, кликните правой кнопкой по строке «FTP-сервер» (находится в центральной части окна) и выберите «Включить правило». Те же действия повторите со строкой «Трафик FTP сервера в пассивном режиме».
- В левой части окна выберите «Правила для исходящего подключения» и включите «Трафик FTP-сервера».
- Чтобы настроить права пользователей, зайдите в раздел «Администрирование» панели управления и кликните по строке «Управление компьютером».
- Щёлкните правой кнопкой по свободному месту и выберите сроку «Создать группу».
- Введите имя группы.
- В папке «Пользователи» создайте нового пользователя.
- Заполните поля, касающиеся имени пользователя и пароля.
- Щёлкните правой кнопкой по только что созданному пользователю, выберите пункт «Свойства», перейдите на закладку «Членство в группах» и, нажав кнопку «Добавить», задайте пользователю новую группу.
- Чтобы разрешить пользователю подключаться к выделенной для обмена папкой, щёлкните по ней правой кнопкой и выберите строку «Свойства», перейдите на вкладку «Безопасность» и нажмите кнопку «Изменить».
- Щёлкните по кнопке «Добавить» и добавьте созданную недавно группу. Отметьте галочками все пункты в колонке «Разрешить».
- Зайдите ещё раз в меню службы IIS, щёлкните по вашему сайту и кликните по иконке «Правила авторизации».
- Кликните по пустому месту правой кнопкой и выберите «Добавить разрешающее правило».
- Отметьте пункт «Указанные роли или группы пользователей» и введите название созданной группы.
На этом создание FTP сервера закончено. Теперь вы знаете, как поднять домашний файлообменник.
Filezilla server
Самое популярное приложение для создания FTP — это FileZilla Server. Его можно скачать с официального сайта.
Чтобы создать свой FTP сервер FileZilla:
- для создания пользователя в пункте верхнего меню «Edit» выберите подпункт «Users»;
- нажмите кнопку «Add»;
- в поле ввода наберите имя пользователя;
- после этого введите пароль;
- создайте рабочую папку;
- задайте права на эту папку;
На этом создание FTP-сервера закончено.
Создание правил проброса портов на роутере
Так как для работы FTP нужны порты двух типов: для передачи управляющих сигналов и для обмена данными — то и правил проброса нужно два:
- проброс внешнего 21 порта на такой же порт компьютера для передачи управляющего сигнала;
- проброс диапазона внешних портов на те же порты на ПК, которые файловая система использует как отдельный канал.
Чтобы настроить эти правила на роутере, надо через веб интерфейс браузера войти в настройки и открыть раздел перенаправления портов. Для каждой модели роутера существуют свои нюансы настроек. В маршрутизаторе Dlink DIR-300 для этого нужно открыть вкладку «Advanced» и выбрать «Port Forwarding».
Это все что нужно, чтобы установить filezilla server и настроить ftp сервер через роутер.
Как подключиться
Существует несколько способов подключения к FTP. Рассмотрим основные из них.
Через проводник Windows
Чтобы подключиться к FTP серверу через проводник, выполните следующие операции:
- Откройте проводник и кликните правой кнопкой мыши по строке «Компьютер» и выберите «Добавить новый элемент в сетевое окружение».
- Когда появится новое окно, просто нажмите «Далее».
- Кликните по надписи: «Выберите другое сетевое размещение».
- Введите адрес подключения.
- Введите логин пользователя, если он есть. Или оставьте все, как есть, если вы подключаетесь как анонимный пользователь;
- Задайте имя соединения (может быть любым), оно будет отображаться в проводнике.
- В следующем окне нужно нажать кнопку «Готово». Чтобы сразу подключиться к FTP, поставьте галочку в поле «Открыть это сетевое размещение».
Теперь вы сможете соединяться с FTP через подключение, созданное в проводнике.
Через любой браузер
Ещё проще зайти на FTP сервер с помощью браузера. Для этого в адресную строку вводим адрес хоста и нажимаем кнопку «Enter».
С помощью Filezilla
Самым популярным и востребованным FTP-клиентом является FileZilla. Он полностью бесплатный и простой в использовании. С официального сайта можно скачать версии для виндовс, начиная с 7 версии, и для Linux.
После запуска программы для подключения потребуется ввести следующие сведения:
- Хост. IP сервера FTP, к которому вы хотите подключиться.
- Имя пользователя. Это логин, который был предоставлен вам при регистрации. Если доступ публичный, то это поле можно оставить пустым.
- Пароль. При использовании публичного доступа ничего вводить не требуется.
- Порт. Оставьте это поле пустым или введите порт по умолчанию — 21.
После того, как вы нажмёте кнопку «Быстрое соединение», подключение установится и вы сможете работать с файлами.
Чтобы не вводить постоянно параметры соединения, в FileZilla можно настроить постоянное подключение к FTP серверу.
Для этого заходим в меню «Файл» выбираем «Менеджер сайтов» и нажимаем «Новый сайт». После этого вводим имя или IP-адрес хоста и порт, выбираем тип входа: анонимный, нормальный или другой. Если вы выбрали анонимный, то больше ничего вводить не нужно, а если нормальный, то потребуется ввести логин и пароль.
После настройки для того, чтобы установить соединение, нужно будет зайти в меню «Файл», кликнуть по строке «Менеджер сайтов», выбрать нужный сайт и нажать кнопку «Соединиться».
Источник: help-wifi.ru