Пример: размещение веб -сайта, созданного генераторами статических сайтов, такими как Hugo, Zola, Jekyll, Hexo и т. Д.
fast_mem_cache ) и обслуживания статических файлов из памяти. На стороне клиента используются Cache-Control , Etag и Last-Modified .Если вы подходите к производству или ожидаете высокого трафика на вашем сервере, получите Binserve+, который имеет защиту DDOS , ограничение скорости и метрики Prometheus для мониторинга вместе со всеми вышеуказанными функциями.
Посмотреть Binserve Plus!
Прочитайте FAQ для более подробной информации.
Загрузите исполняемый файл для вашей ОС из релизов , затем просто запустите его:
mkdir mywebsite/
binserveПри первом запуске он создаст файл конфигурации и стартовый пареный пластин, чтобы начать работу.
_ _
| |_|_|___ ___ ___ ___ _ _ ___
| . | | |_ -| -_| _| | | -_|
|___|_|_|_|___|___|_| _/|___| 0.2.0
[INFO] Build finished in 295 μs ⚡
[SUCCESS] Your server is up and running at 127.0.0.1:1337
Перейдите по адресу http://127.0.0.0:1337/, и вас встретят с помощью индексной страницы Binserve.
Теперь все, что вам нужно сделать, это отредактировать файл binserve.json . (См. Конфигурацию ).
Загрузите исполняемый файл с выпусков или установить с помощью cargo :
cargo install --git https://github.com/mufeedvh/binserve.gitУстановите ржавчину/груз
Предварительные условия:
git clone https://github.com/mufeedvh/binserve.git
cd binserve/
RUSTFLAGS= " -C target-cpu=native " cargo build --releaseПервая команда клонирует этот репозиторий в вашу локальную машину, а последние две команды входят в каталог и создают источник в режиме выпуска.
Файл конфигурации представляет собой файл JSON с именем binserve.json , который автоматически генерируется исполняемым файлом. Настройка Binserve довольно проста, потому что поля конфигурации являются самоэкспланирующей:
И все значения здесь имеют безопасные значения по умолчанию, поэтому вам не нужно указывать те, которые вам не нужны.
Совет : Скорее всего, вам не понадобятся все поля конфигурации, проверьте пример статического генератора сайта о том, как обслуживать один каталог.
{
"server" : {
"host" : " 127.0.0.1:1337 " ,
"tls" : {
"host" : " 127.0.0.1:443 " ,
"enable" : false ,
"key" : " key.pem " ,
"cert" : " cert.pem "
}
},
"routes" : {
"/" : " public/index.html " ,
"/usage" : " public/usage.hbs " ,
"/blog" : " public/blog/ "
},
"static" : {
"directory" : " public/assets " ,
"served_from" : " /assets " ,
"error_pages" : {
"404" : " public/404.html "
}
},
"template" : {
"partials" : {
"header" : " public/header.hbs "
},
"variables" : {
"app_name" : " Binserve "
}
},
"config" : {
"enable_hot_reload" : true ,
"fast_mem_cache" : true ,
"enable_cache_control" : true ,
"enable_directory_listing" : true ,
"minify_html" : false ,
"follow_symlinks" : false ,
"enable_logging" : false
},
"insert_headers" : {
"x-greetings" : " hellooo! "
}
}Вы также можете переопределить конфигурацию и аргументами командной строки:
-c/--cert -Путь к сертификату TLS для вашего домена.-k/--key -Путь к ключу TLS для вашего домена.-h/--host -Хост/домен с указанным портом для вашего веб-сервера.--host 127.0.0.1:1337 или --host zombo.com Есть встроенная поддержка для TLS:
{
"server" : {
"host" : " 127.0.0.1:1337 " ,
"tls" : {
"host" : " 127.0.0.1:443 " ,
"enable" : true ,
"key" : " key.pem " ,
"cert" : " cert.pem "
}
}
} Ключ и сертификат могут быть сгенерированы с помощью openssl :
# generate pkcs#10 key+cert (PEM):
$ openssl req -x509 -newkey rsa:4096 -keyout key_pkcs10.pem -out cert.pem -sha256 -days 36
# convert the private key to PKCS#8 (PEM):
$ openssl pkcs8 -topk8 -inform PEM -outform PEM -nocrypt -in key_pkcs10.pem -out key.pemBinserve использует руль для шаблона, так как он простой и наиболее известный шаблон.
Вы можете зарегистрировать частичные шаблоны и шаблоны, подобные этому, в файле конфигурации:
"template" : {
"partials" : {
"header" : " public/header.hbs "
},
"variables" : {
"app_name" : " Binserve "
}
}public/header.hbs :
И используйте это так:
Что приведет к:
Каждый статический генератор превращает ваши файлы разметки/ шаблона в каталог, обычно называемый public/ все, что вам нужно сделать, это указывать на этот каталог в качестве маршрута индекса:
{
"server" : {
"host" : " 127.0.0.1:1337 " ,
"tls" : {
"host" : " 127.0.0.1:443 " ,
"enable" : false ,
"key" : " key.pem " ,
"cert" : " cert.pem "
}
},
"routes" : {
"/" : " public/ "
}
}Вот и все!
Как упоминалось ранее, вам не нужно указывать все поля, будут применены безопасные значения по умолчанию! ?
Указывание каталогов в качестве маршрутов является преднамеренным дизайном, так что вы можете легко размещать несколько статических выходов генератора сайтов. Допустим, у вас есть портфолио в качестве домашней страницы, и ваш блог сделан с другим шаблоном. Вы можете просто сделать:
"routes" : {
"/" : " my_zola_portfolio/public/ " ,
"/blog" : " my_hugo_blog/public/ "
}Binserve является кроссплатформенным, что означает, что вы можете запустить его на любой крупной операционной системе / устройствах. Это мало при использовании процессора и следов памяти, поэтому вы можете запустить его на Raspberry Pi или даже на телефоне Android :
При включении fast_mem_cache все файлы хранятся в памяти, отображаемые с его индексом маршрута и ответом на инициализацию и не будут выполнять какие-либо дисковые чтения во время выполнения. Рекомендуется оставить его включенным, даже если у вас есть сотни файлов, Binserve автоматически сортирует большие файлы для чтения с диска. Только когда вы обслуживаете много большого медиа -контента, вы должны отключить этот режим.
Под капотом Binserve отображает маршруты и готовит ответ с содержанием файла, типом mime , metadata и необходимыми полями для получения Etag и Last-Modified тегов заранее и не будет выполнять какую-либо из этих операций во время выполнения. После изменений в любом из этих файлов Hot Reload выполняется в фоновом потоке, который обновляет состояние программы, внося изменения в одновременную Hashmap, который управляет кэшем, изменения являются мгновенными и не вызовут каких -либо простоев.
Смотрите тесты .md
Q: Что такое Binserve+?
Binserve+ создан для веб -сайтов, предназначенных для работы в производстве и обработки большого количества трафика. Он поставляется с защитой DDOS, ограничением скорости и метриками Прометея вне коробки.
Вы получаете пожизненную лицензию + исправления ошибок пожизненной ошибки за 24 доллара/один раз.
Это существует как способ поддержки проекта, у него нет лицензионных ключей или системы проверки, вы получаете предварительно скомпилированные исполняемые файлы для основных операционных систем и архитектур в архиве ZIP. (Лицензия MIT)
Получите Binserve+.
Способы внесения вклад:
Лицензировано по лицензии MIT, см. Лицензию для получения дополнительной информации.
Binserve не существовал бы без этих удивительных проектов:
CompactString ст.Спасибо! ❤