Tinyproxy로 역방향 에이전트를 시원하게 만들어 보도록 하겠습니다.
포트를 하나의 포트로 정리하고 싶은데 아파치와nginx로 제대로 만들 정도는 아니야...생각하다가 Tinyproxy를 발견했어요.
최소한으로 설정하면 바로 사용할 수 있고 메모리 소모량도 적다.
The memory footprint tends to be around 2 MB with glibc
그래서 나는 웹 응용 프로그램을 역 에이전트로 사용해 보았다.
컨디션
$ tinyproxy -v
tinyproxy 1.10.0
샘플 응용 프로그램docker-compose를 사용하여 리버스 프록시(Tinyproxy)와 웹 응용 프로그램을 이동합니다.
docker-compose.yml
version: '3'
services:
# リバースプロキシ
tinyproxy:
image: vimagick/tinyproxy
ports:
- "8080:8080"
volumes:
- ./tinyproxy:/etc/tinyproxy
restart: unless-stopped
# -dでフォアグラウンド起動(デフォルトはバックグラウンド)
entrypoint: tinyproxy -d -c /etc/tinyproxy/reverseproxy.conf
# webアプリ(何でもいいけどここではワンライナーREST API)
web:
image: ghcr.io/syuparn/webawk:0.3.0
entrypoint: ./webawk.sh 'GET("/names") { b["names"][1]="Taro"; res(200, b) }'
경로/example/
아래는 example.com
이고 아래는 웹 용기에 대한 에이전트입니다.tinyproxy/reverseproxy.conf
# Tinyproxyの設定
User nobody
Group nobody
# 1024以下の場合はrootユーザー必要
Port 8080
Listen 0.0.0.0
# 60秒でタイムアウト
Timeout 60
# yesの場合普通のプロキシが使えなくなる。リバースプロキシの場合はyes推奨(公式)
ReverseOnly Yes
# example.com
ReversePath "/example/" "http://www.example.com/"
# webコンテナ
# NOTE: docker-composeはコンテナ名をホストとして名前解決可能
ReversePath "/web/" "http://web:8080/"
참고 자료결실
# localhost:8080/example/ -> example.com
$ curl localhost:8080/example/
<!doctype html>
<html>
<head>
<title>Example Domain</title>
...
# localhost:8080/web/ -> web:8080/ (webコンテナへコンテナ間通信)
$ curl localhost:8080/web/names
{"names":["Taro"]}
응답 헤드에 /web/
가 추가되었습니다.$ curl -i localhost:8080/web/names
HTTP/1.1 200 OK
Via: 1.1 e8667db7b85d (tinyproxy/1.11.0)
Content-Length: 18
Content-Type: application/json
Date: Sat, 04 Sep 2021 12:57:38 GMT
{"names":["Taro"]}
Via
옵션이 활성화된 경우 요청 소스의 IP 주소를 서버에 전송할 수 있습니다.tinyproxy/reverseproxy.conf
# リクエストに "X-Tinyproxy" ヘッダ追加
XTinyproxy Yes
docker-compose.yml # webアプリ: リクエストヘッダ X-Tinyproxy をログだし
entrypoint: ./webawk.sh 'GET("/names") { print("X-Tinyproxy ", REQUEST_HEADERS["X-Tinyproxy"]); b["names"][1]="Taro"; res(200, b) }'
$ docker-compose logs web
Attaching to tinyproxy-sample_web_1
web_1 | X-Tinyproxy 172.21.0.1
끝말기본적으로 경로만 설정하면 사용할 수 있기 때문에 프레젠테이션 앱을 만드는 것이 매우 편리하다.(공격수) 에이전시 기능이 있어서 기회가 되면 한번 써보고 싶어요.
Reference
이 문제에 관하여(Tinyproxy로 역방향 에이전트를 시원하게 만들어 보도록 하겠습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/Syuparn/items/85176c64300217d7537e텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)