BusyBox용 httpd

6461 단어 BusyBoxtech

개요


동작 확인과 예시를 조금 준비할 때 Nginx의 장면BusyBox을 사용하는 HTTP 서버httpd 명령를 사용할 수 있지 않을까 해서 몇 가지 사용법을 미리 적어두려고 합니다.

컨디션


Docker 컨테이너를 사용하여 BusiBox를 준비합니다.
$ docker --version
Docker version 20.10.8, build 3967b7d
$ docker run --rm busybox busybox --help|head -n 1
BusyBox v1.33.1 (2021-09-13 17:20:40 UTC) multi-call binary.

정적 파일 저장

-h 카탈로그를 맡길 수 있습니다.
예를 들어 다음과 같이 준비하십시오static/index.html.
<h1>Hello, world!</h1>
다음 명령을 사용하여 BuyBox의 HTTP 서버를 시작합니다.[1]
docker run -d --name web -p 8080:80 -v $PWD/static:/static \
  busybox httpd -f -h /static
curl를 통해 동작을 확인한다.
curl -s http://localhost:8080
Hello, world!돌려줬어요.
그나저나 부시박스에wget가 있으니 동작도 확인할 수 있어요.
docker exec web wget http://localhost -q -O -

CGI 사용

/cgi-bin/ 아래의 패스는 CGI 스크립트로 간주된다.
BusyBox 단일체라면 조개 스크립트를 CGI 스크립트로 만들 수 있습니다.
예를 들어, 다음 파일cgi/cgi-bin/index.cgi을 작성하십시오.
#!/bin/sh

# レスポンスヘッダーまたは空行から開始する必要がある
printf "\r\n"
printf "<h1>Hello, $(whoami)!</h1>"
# 設定された環境変数を見たい場合は次の行のコメントを外す
# env
그리고 실행 권한을 설정합니다.
chmod +x cgi/cgi-bin/index.cgi
실행 권한이 있으면 HTTP 서버를 설정합니다.
docker run -d --name web -p 8080:80 -v $PWD/cgi:/cgi \
  busybox httpd -f -h /cgi
동작을 확인한다.
curl -s http://localhost:8080/cgi-bin/index.cgi
<h1>Hello, root!</h1>로 표시됩니다.
CGI에 대한 자세한 내용은 RFC 3875를 참조하십시오.

특정 경로 요청


프로필을 준비하면 특정 경로의 요청을proxy로 할 수 있습니다.
우선 아래 내용에 따라 설정 파일을 준비한다.
파일 이름은 proxy/httpd.conf입니다.
P:/greeting:http://web/greeting
HTML 파일 2개를 준비합니다.
첫 번째는 다음과 같은 내용proxy/public/index.html이다.
<h1>Hello, proxy!</h1>
두 번째는 다음과 같은 내용web/greeting/hello.html이다.
<h1>Hello, world!(via proxy)</h1>
마지막으로 BusyBox를 사용하여 2개의 HTTP 서버를 만듭니다.
docker run -d --name web -v $PWD/web/public:/public \
  busybox httpd -f -h /public
docker run -d --name proxy -p 8080:80 --link web -v $PWD/proxy:/proxy \
  busybox httpd -f -h /proxy/public -c /proxy/httpd.conf
curl를 통해 동작을 확인한다.
먼저 proxy 하숙의 정적 페이지를 얻습니다.
curl -s http://localhost:8080
<h1>Hello, proxy!</h1>돌아왔지.
이어서 proxy를 통해 web 위탁 관리를 받은 정적 페이지입니다.
curl -s http://localhost:8080/greeting/hello.html
<h1>Hello, world!(via proxy)</h1>돌아왔지.

끝맺다


이번에 Busiy Box가 구비한 httpd 명령을 사용하여 다음 기능을 시도했다.
  • 정적 페이지의 호스트
  • CGI
  • proxy
  • 다른 기능도 있으니까 원한다면 해보고 싶어요.
    그게 다야.
    각주
    설치-f후foreground에서 실행↩︎

    좋은 웹페이지 즐겨찾기