darkhttpd로 간단한 웹 서버를 만드는 방법

darkhttpd로 간단한 웹 서버를 만드는 방법
HTML 코드가 표시된 컴퓨터 화면의 사진입니다.

Darkhttpd는 Linux용 가볍고 단일 바이너리 웹 서버 데몬입니다. 서버에서 가능한 한 빨리 웹사이트를 배포할 수 있는 간단한 “제로 구성” 방식을 제공합니다. 여기서는 Ubuntu Linux에 darkhttpd를 설치하는 방법, 인기 있는 웹 서버와 비교하는 방법, 첫 번째 웹사이트를 만드는 과정을 안내합니다.

Darkhttpd 대 Apache 대 Nginx

Darkhttpd는 Linux 머신에 설치할 수 있는 유일한 웹 서버가 아닙니다. Apache, Nginx, Caddy, Lighttpd 등이 있습니다. 이 섹션에서는 darkhttpd를 Apache와 Nginx와 비교하여 성능을 살펴보겠습니다.

사용 편의성 측면에서 darkhttpd는 Apache와 Nginx를 모두 앞지릅니다. Darkhttpd는 모든 것을 단일 프로그램에 유지하는 데 중점을 둡니다. 즉, 구성과 시스템의 init 서비스에 대해 걱정하지 않고 웹사이트를 공유할 수 있습니다.

darkhttpd의 도움말 출력을 보여주는 터미널.

보안 측면에서 darkhttpd는 파일에 chroot를 사용합니다. 또한 유휴 연결과 기본 로깅에 대한 자동 시간 초과도 있습니다. 이는 Apache와 Nginx와 비교하면 훨씬 뛰어납니다. 둘 다 강력한 속도 제한 필터와 옵션을 제공하여 사이트의 HTTP 헤더를 미세 조정할 수 있습니다.

Darkhttpd의 단순성은 또한 사용자 정의 요구 사항에 유연하지 않습니다. 이 프로그램의 개발자는 정적 웹 콘텐츠를 제공하는 빠른 방법으로 설계했습니다. 즉, Apache 및 Nginx와 비교할 때 darkhttpd는 CGI 스크립트를 실행하거나 앱의 역방향 프록시 역할을 할 수 없습니다.

Nginx의 역방향 프록시 구성 예를 보여주는 터미널입니다.
범주 다크httpd 아파치 엔진엑스
사용의 용이성 웹사이트를 호스팅하는 데 추가 구성이 필요하지 않습니다. 작동하려면 시스템 및 사이트별 구성이 모두 필요합니다. 작동하려면 사이트별 구성이 필요합니다.
전반적인 보안 기본 chroot 및 로깅 기능이 제공됩니다. 속도 제한기와 보안 중심 HTTP 헤더가 함께 제공됩니다. 속도 제한기와 보안 중심 HTTP 헤더가 함께 제공됩니다.
SSL 지원 SSL 지원이 내장되어 있지 않습니다. SSL 지원을 위한 “mod_ssl”이 함께 제공됩니다. SSL 지원이 내장되어 있습니다.
응용 프로그램 유연성 정적 웹 콘텐츠로만 작업할 수 있습니다. 정적 및 동적 웹 콘텐츠 모두에서 작업할 수 있습니다. 웹 서버, 로드 밸런서, 역방향 프록시로 작동할 수 있습니다.

darkhttpd를 위한 시스템 준비

Ubuntu Linux에서 darkhttpd를 사용하여 웹사이트를 만드는 첫 번째 단계는 Docker 및 Docker Compose에 대한 종속성을 얻는 것입니다.

Docker 프로젝트의 서명 키를 다운로드하여 시작하세요.

좋아하는 텍스트 편집기를 사용하여 새 저장소 파일을 만드세요.

저장소 파일에 다음 코드 줄을 붙여넣으세요.

머신의 패키지 저장소를 다시 로드하고 전체 시스템을 업데이트하세요.

apt를 사용하여 Docker, Compose 플러그인, Git을 설치합니다.

Docker, 플러그인, Git의 설치 과정을 보여주는 터미널입니다.

darkhttpd 설치 및 실행

홈 디렉토리로 이동한 다음, darkhttpd의 최신 버전을 시스템으로 가져옵니다.

Git repo 내부로 이동한 다음, 원하는 텍스트 편집기를 사용하여 새 Docker Compose 파일을 만듭니다.

다음 코드 블록을 Compose 파일에 붙여넣습니다.

새 Compose 파일을 저장한 후 다음 명령을 실행하여 darkhttpd Docker 컨테이너를 빌드하고 실행합니다.

darkhttpd Linux 저장소 내부에 “html” 폴더를 만든 다음 정적 웹사이트 파일을 여기에 복사합니다.

시스템에서 사용 가능한 컨테이너를 나열하여 darkhttpd가 제대로 실행 중인지 확인하세요.

시스템에서 실행되는 darkhttpd Docker 컨테이너를 보여주는 터미널입니다.

stunnel을 사용하여 SSL을 통해 darkhttpd 실행

이 시점에서는 8080 포트에서 darkhttpd 서버가 실행 중입니다. 그러나 인터넷을 통해 이에 액세스하려면 먼저 역방향 프록시를 통해 SSL로 캡슐화해야 합니다.

시작하려면 darkhttpd의 IPv4 주소를 가리키는 도메인에 대한 새 DNS “A” 레코드를 만듭니다. 제 경우에는 제 머신의 IPv4 주소를 레코드 “web.myvpsserver.top”으로 가리킵니다.

“코어” 스냅 패키지인 stunnel과 Certbot을 머신에 가져와 설치합니다.

Darkhttpd 인스턴스를 Electronic Frontier Foundation에 등록하세요:

도메인 이름에 대한 기본 SSL 인증서를 생성합니다.

LetsEncrypt에서 SSL 인증서 생성 과정을 보여주는 터미널.

Stunnel 역방향 프록시에 대한 새 구성 파일을 만듭니다.

새 구성 파일에 다음 코드 블록을 붙여넣습니다.

새로운 구성 파일을 저장한 후 다음 명령을 실행하여 역방향 프록시를 시작합니다.

시스템의 스턴넬 서비스의 현재 상태를 보여주는 터미널입니다.

웹 브라우저에서 하위 도메인을 열어 정적 웹사이트가 제대로 작동하는지 확인하세요.

SSL을 사용하여 darkhttpd에서 실행되는 샘플 웹사이트를 보여주는 스크린샷입니다.

darkhttpd를 사용하여 간단한 웹사이트를 호스팅하는 것은 셀프호스팅 웹 서비스의 멋진 세계를 탐험하는 첫 걸음일 뿐입니다. RSS-Bridge를 사용하여 소셜 미디어용 RSS 피드를 만드는 방법을 알아보세요.

이미지 출처: Ilya Pavlov via Unsplash . 모든 변경 사항과 스크린샷은 Ramces Red가 제공했습니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다