우리는 보통 Nginx를 역방향 프록시 서버라고 부르는데요, 역방향 프록시란 무엇이고 순방향 프록시란 무엇인가요?
我想大声告诉你2017-05-16 17:23:59
A는 B와 직접 소통하므로 소속사가 없습니다.
그러나 중간에 메신저 C가 있습니다. A는 C를 통해 B에게 정보를 전달하고, C는 B의 피드백을 A에게 전달합니다.
이 과정에서 A는 의사소통의 직접적인 대상이 B라는 것을 알고 있지만 여러 가지 이유로 B를 직접 대면할 수 없고 중개자 C가 필요합니다. 이는 소위 "전달 에이전트"입니다. 실제로 우리는 거의 그렇지 않습니다. 영어 원문에서는 Forward Proxy라고 하는데, 일반적으로는 그냥 Proxy라고 부르는데요. , 이는 프록시라는 단어의 원래 의미이기 때문에 필요하지 않습니다.
또 다른 상황은 A가 B의 존재를 모른다는 것입니다. 원하는 응답을 얻으려면 C를 찾는 것만 알고 있습니다. A의 경우 B가 있는지, B, D, E, F가 몇 개인지... 알 수 없습니다. 상관없습니다. C만 있으면 충분합니다. 그리고 C는 상황에 따라 피드백을 받은 뒤 A에게 대응한다.
이를 역방향 프록시라고 합니다. 차이점을 이해하려면 "긍정적"과 "부정적"이라는 두 가지 반의어에 집중하지 마십시오. 영어에서 Forward와 Reverse는 한 쌍의 반의어가 아니지만 Forward와 Backward는 같은 의미가 아닙니다. . 따라서 기술 서적과 자료의 경우에도 원본 텍스트를 읽어야 합니다.
─────
친구가 아직도 헷갈려서 질문을 했는데요, 예시를 들어서 이해해줬어요. 위의 답변이 모든 분들에게 이해가 될지 모르겠어서 다음 예시도 작성했습니다.
www.google.com에 접속하고 싶은데, 차단되어 있다는 것을 다들 알고 계시고 직접 접속할 수 없습니다. 그래서 VPN 서비스에 연결하고 이를 로컬 HTTP 액세스용 프록시로 설정한 다음(예를 들어 Mac에서는 '모든 트래픽을 VPN 연결을 통해 보내기' 체크) www.google.com에 접속했는데 요청이 차단되었습니다. . VPN 서비스는 www.google.com에 대한 액세스를 프록시하고 결과를 나에게 반환합니다
.이 예는 프록시의 적용 시나리오이지만 프록시를 이것에만 사용할 수 있다는 의미는 아닙니다
가장 중요한 기능은 www.google.com의 존재를 알고 있으며, 방문한 URL은 실제로 www.google.com이지만 내 액세스 요청은 VPN 프록시를 통해 전달되며, 반응
이 경우 프록시는 투명하므로 사용자는 그 존재를 알지 못할 수 있습니다(보통은 알고 있지만 프록시를 직접 설정하지 않을 수도 있습니다)
www.mysite.com의 포트 80에 Nginx 서비스가 배포되어 있습니다. 사용자가 이 사이트를 방문하면 내가 만든 웹사이트를 볼 수 있습니다. 내 웹사이트에는 JSON 데이터를 얻기 위한 Ajax 요청이 있지만 이를 제공하는 API 서비스는 다음과 같습니다. 데이터가 배포됩니다. 서버의 포트 8000은 방화벽에 의해 차단되어 사용자가 직접 접근할 수 없습니다.
그래서 Nginx를 재구성하여 :80/api/를 통한 모든 액세스 요청을 localhost:8000으로 프록시한 다음 원래 요청자(예: 원본 호스트)에게 응답을 반환합니다. 이것은 역방향 프록시입니다. 이제 내 사용자는 정상적으로 www.mysite.com에 액세스할 수 있습니다.
위와 마찬가지로 역방향 프록시를 적용한 시나리오이지만 이 방식으로만 사용할 수 있다는 의미는 아닙니다
가장 중요한 특징은 내 사용자들이 localhost:8000 서비스의 존재를 전혀 모르고, 알고 있어도 접근할 수 없다는 점이다. VPN은 서로 다른 두 가지입니다!
사용자의 유일한 "대화" 파티는 www.mysite.com(포트 80)입니다. 사용자는 다음에 무슨 일이 일어났는지 알 필요도 없고 알 필요도 없습니다
大家讲道理2017-05-16 17:23:59
역방향 프록시는 그 뒤에 있는 대상이 고정되어 있음을 의미합니다.
nginx에 액세스하는 사용자는 프록시 뒤에 있는 웹 서비스에 액세스하는 것과 동일합니다
정방향 프록시는 프록시의 대상이 고정되어 있지 않음을 의미합니다.
사용자는 프록시 서버를 통해 모든 웹 서비스에 액세스할 수 있습니다
阿神2017-05-16 17:23:59
가장 큰 차이점은 클라이언트인지 아니면 프록시 역할을 하는 서버인지입니다.
클라이언트가 요청을 보낼 때 프록시를 사용하는 경우 이는 순방향 프록시입니다.
그리고 서버가 클라이언트의 요청을 받으면 역방향 프록시인 프록시를 사용하여 다른 서버로 전송합니다.
PHP中文网2017-05-16 17:23:59
정방향 프록시: 액세스하려면 프록시 서버 IP 또는 도메인 이름을 적극적으로 설정해야 합니다. 설정된 서버 IP 또는 도메인 이름을 기준으로 접속 내용을 얻어서 반환합니다.
역방향 프록시: 서버의 실제 IP 또는 도메인 이름에 직접 액세스하기 위해 설정이 필요하지 않지만, 서버는 액세스된 콘텐츠에 따라 자동으로 점프하여 콘텐츠를 반환합니다. 최종적으로 어떤 컴퓨터에 액세스하는지 알 수 없습니다.
PHP中文网2017-05-16 17:23:59
ABC의 예에서 순방향 에이전트는 다음과 같이 이해될 수 있습니다. C는 B를 찾기 위해 A의 에이전트 역할을 하는 반면, 리버스 에이전트의 C는 B의 에이전트와 유사하여 A에 피드백을 제공합니다.
ringa_lee2017-05-16 17:23:59
간단히 말하면 누구를 대표하느냐에 따라 다릅니다. 클라이언트의 프록시는 순방향 프록시이고, 서버의 프록시는 역방향 프록시입니다
PHP中文网2017-05-16 17:23:59
컴퓨터가 서버에 액세스할 때 서버가 컴퓨터의 실제 IP를 알지 못하는 경우 둘 사이에 순방향 프록시가 있습니다.
컴퓨터가 서버에 접속하는데 컴퓨터가 서버의 실제 IP를 알 수 없다면 둘 사이에 역방향 프록시가 있는 것입니다.
물론 많은 정방향 프록시는 http 헤드를 통해 컴퓨터의 실제 IP를 전달할 수도 있습니다
大家讲道理2017-05-16 17:23:59
포워드 에이전트: KFC에 가서 햄버거와 치킨윙을 먹습니다. 햄버거와 치킨윙은 각 레벨의 "에이전트" 하위 센터를 통해 본사에서 구입하여 배포됩니다.
역대리: KFC 본사에서 햄버거와 치킨윙을 제공할 때 먼저 여러 지역에 하위 센터를 할당한 후 매장에 가서 최종적으로 배송할 수 있지만 이는 귀하에게 투명하므로 그럴 필요가 없습니다. 중국 동부인지 북부인지 알 수 있습니다. 지점에서 배송해 드립니다.
给我你的怀抱2017-05-16 17:23:59
온라인에 접속할 때 프록시 서버를 구성해야 하는 경우가 있습니다(예: 차단됨). 이 프록시 서버는 서버 시스템을 개발할 때 클라이언트/브라우저에서 보낸 요청 프록시가 여러 실제 비즈니스에 배포됩니다. 서버에서 이 프록시는 역방향 프록시입니다.
정방향 프록시는 클라이언트 측으로, 역방향 프록시는 서버 측으로 생각할 수 있습니다.