예 : Hugo, Zola, Jekyll, Hexo 등과 같은 정적 사이트 생성기가 제작 한 웹 사이트 호스팅
fast_mem_cache 활성화 함)에서 디스크 I/O 작업을 최소화하고 메모리에서 정적 파일을 제공하여 달성됩니다. 클라이언트 측에서는 Cache-Control , Etag 및 Last-Modified 사용됩니다.생산에 대해 설명하거나 서버로 트래픽이 높은 것으로 예상되는 경우, DDOS 보호 , 요금 제한 및 위의 모든 기능과 함께 모니터링하기위한 Prometheus 메트릭이 있는 Binserve+를 얻으십시오.
체크 아웃 Binserve Plus!
자세한 내용은 FAQ를 읽으십시오.
릴리스 에서 OS 실행 파일을 다운로드 한 다음 실행하십시오.
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첫 번째 명령은이 저장소를 로컬 컴퓨터로 클론하고 마지막 두 명령은 디렉토리에 들어가서 릴리스 모드에서 소스를 빌드합니다.
구성 파일은 실행 파일에 의해 자동으로 생성 된 binserve.json 이라는 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 :
다음과 같이 사용하십시오.
다음으로 렌더링됩니다.
모든 정적 생성기는 Markdown/ Template 파일을 디렉토리로 빌드합니다. 일반적으로 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는 크로스 플랫폼으로 모든 주요 운영 체제 / 장치에서 실행할 수 있습니다. CPU 사용 및 메모리 풋 프린트가 적으므로 Raspberry Pi 또는 Android 폰에서 실행할 수 있습니다.
fast_mem_cache 활성화되면 모든 파일은 메모리 인 메모리에 저장되어 초기화에 대한 경로 인덱스 및 응답에 맵핑되며 런타임에 디스크 읽기를 수행하지 않습니다. 수백 개의 파일이 있더라도 Binserve는 디스크에서 읽을 큰 파일을 자동으로 정렬하는 것이 좋습니다. 많은 대형 미디어 컨텐츠를 제공 할 때만이 모드를 비활성화해야합니다.
후드 아래에서 Binserve는 경로를 매핑하고 파일의 컨텐츠, mime 유형, metadata 및 필요한 필드로 응답을 준비하여 Etag 및 Last-Modified 태그를 미리 도출하며 런타임에서 이러한 작업을 수행하지 않습니다. 이러한 파일 중 하나를 변경하면 Hot Reload는 백그라운드 스레드에서 실행됩니다. 배경 스레드에서는 캐시를 관리하는 동시 해시 맵을 변경하여 프로그램 상태를 업데이트하며 변경 사항이 즉각적이며 다운 타임을 유발하지 않습니다.
Benchmarks.md를 참조하십시오
Q : Binserve+란 무엇입니까?
Binserve+는 생산에서 실행되고 많은 양의 트래픽을 처리하기위한 웹 사이트를 위해 만들어졌습니다. DDOS 보호, 요금 제한 및 Prometheus 메트릭이 제공됩니다.
평생 라이센스 + 평생 버그 수정은 $ 24/한 번에 얻을 수 있습니다.
이는 프로젝트를 지원하는 방법으로 존재하며 라이센스 키 또는 검증 시스템이 없으며 ZIP 아카이브에서 주요 운영 체제 및 아키텍처에 대한 사전 컴파일 된 실행 파일을 얻습니다. (MIT 라이센스)
binserve+를 얻으십시오.
기여하는 방법 :
MIT 라이센스에 따라 라이센스가 라이센스를 참조하십시오. 자세한 내용은 라이센스를 참조하십시오.
Binserve는이 놀라운 프로젝트가 없으면 존재하지 않을 것입니다.
CompactString s로 저장됩니다.감사합니다! ❤️