HTTP 트래픽을 전달하는 서버 솔루션

HTTP 트래픽을 전달하는 서버 솔루션

서버에서 GET/POST HTTP 요청을 리디렉션하는 솔루션을 찾고 있습니다.

가장 쉬운 부분은 포트 변환 및 호스트 이름 리디렉션(HTTP 3xx 리디렉션)입니다. DMZ에 있는 서버가 포트 7070에서 트래픽을 수신할 때(http://mydmz.server.com:7070), 이는 트래픽을 공개 웹 서버(http://liveupdate.symantecliveupdate.com기본 포트는 80)

그러나 요청 헤더를 동적으로 수정해야 합니다.

  • /clu-제품URI에서 제거해야 함
  • 호스트: mydmz.server.com로 교체해야합니다호스트: liveupdate.symantecliveupdate.com

포트 7070에서 수신 대기하고 다음을 수행하기 위해 내 서버에서 어떤 도구와 솔루션을 사용할 수 있습니까? 로드 밸런서, HTTP 프록시?

여기에 이미지 설명을 입력하세요. 여기에 이미지 설명을 입력하세요.

답변1

나는 이것을 달성하기 위해 HAProxy를 사용할 수 있다고 생각합니다.

  • 포트 7070/tcp에서 수신 대기하려면 httpd 모드로 설정하십시오.
  • haproxy 대체 값을 사용하여 호스트 헤더를 수정합니다. 귀하의 경우 다음과 같이 보일 수 있습니다.

    http-request replace-value Host mydmz.server.com:(.*) liveupdate.symantecliveupdate.com:\1
    
  • haproxy URL 재작성을 사용하여 URI를 제거합니다. 귀하의 경우에는 다음과 같을 수 있습니다.

    reqrep ^([^\ ]*\ /)clu-prod[/]?(.*)     \1\2
    

이러한 설정을 사용하면 HAProxy 구성은 다음과 같을 수 있습니다. 이는 CentOS 7의 HAProxy 기본 구성을 빠르게 수정한 것입니다.아니요철저한 테스트를 거쳤습니다):

    global
   log         127.0.0.1 local2
    chroot      /var/lib/haproxy
    pidfile     /var/run/haproxy.pid
    maxconn     4000
    user        haproxy
    group       haproxy
    daemon
    stats socket /var/lib/haproxy/stats

defaults
    mode                    http
    log                     global
    option                  httplog
    option                  dontlognull
    option http-server-close
    option forwardfor       except 127.0.0.0/8
    option                  redispatch
    retries                 3
    timeout http-request    10s
    timeout queue           1m
    timeout connect         10s
    timeout client          1m
    timeout server          1m
    timeout http-keep-alive 10s
    timeout check           10s
    maxconn                 3000

frontend  main *:7070
    default_backend             app

backend app
    http-request replace-value Host mydmz.server.com:(.*) liveupdate.symantecliveupdate.com:\2
    reqrep ^(.*)/clu-prod(.*) \1/\2
    balance     roundrobin
    server  app1 liveupdate.symantecliveupdate.com:80 check

사용할 수 있는 다른 옵션은 오징어 프록시입니다.http://www.squid-cache.org/

관련 정보