공용 IP 주소 1개, 라우터 1개, 라우터 뒤에 여러 서버가 있습니다.
라우터를 통해 다른 도메인(모두 HTTP 사용)을 다른 서버로 전달하고 싶습니다.
예를 들어:
example1.com => 192.168.0.110
example2.com => 192.168.0.120
foo.example2.com => 192.168.0.130
bar.example2.com => 192.168.0.140
포트 전달을 사용하여 이 작업을 수행할 수 있다는 것을 이해하지만 포트 80에서 실행되는 모든 호스트가 필요합니다.
IP 매스커레이딩에 대한 몇 가지 정보를 찾았지만 이해하기 어려웠고 이것이 제가 추구하는 것인지 확실하지 않습니다.
내가 찾은 또 다른 해결책은 모든 트래픽을 역방향 프록시 서버로 보내는 것입니다. 그러면 역방향 프록시 서버가 요청을 적절한 서버로 전달합니다. iptables는 어떻습니까?
Billion 7404 VNPX 라우터를 사용하고 있습니다. 이 라우터에 이를 수행할 수 있는 기능이 있습니까?
이것이 나의 유일한 선택입니까? 내가 뭔가를 완전히 놓친 걸까요? 하나가 다른 것보다 추천됩니까?
주변을 검색했지만 올바른 키워드를 입력하고 있는 것 같지 않습니다.
답변1
가장 좋은 해결책은 HTTP 역방향 프록시를 사용하는 것입니다. 이를 위해 다음을 사용할 수 있습니다.
우리는 mod_proxy와 함께 Apache를 사용하고 있지만 파운드를 사용할 생각입니다.
하드웨어 어플라이언스로 Cisco Content Service Switch를 사용할 수 있습니다. 보다:http://www.cisco.com/en/US/products/hw/contnetw/ps792/index.html
답변2
나에게 아이디어가 있는데, 이에 대한 피드백이 있는 분이 있는지 알고 싶습니다.
Reverse Proxy 아이디어를 활용하면 아주 간단하게 문제를 해결할 수 있을 것 같습니다. 저는 이미 다른 서버에서 Nginx를 사용하고 있으므로 이것이 제가 역방향 프록시로 선택한 서버입니다.
라우터에서는 포트 80을 통해 들어오는 모든 연결을 역방향 프록시 서버로 전달합니다. 다음 구성 파일을 사용하여 이 서버에서 Nginx를 실행하겠습니다.
server {
listen *:80;
location / {
proxy_pass http://$host;
}
}
이것이 수행하는 작업은 요청을 동일한 호스트로 프록시하는 것입니다. 하지만 여기에 트릭이 있습니다. 내 /etc/hosts 파일에서 모든 도메인을 내부 IP에 매핑합니다.
182.168.0.110 example1.com
182.168.0.120 example2.com
182.168.0.130 foo.example2.com
182.168.0.140 bar.example2.com
따라서 역방향 프록시 서버는 요청된 호스트를 동일한 호스트로 라우팅하지만 이 시점에서는~해야 한다로컬 호스트 파일을 찾아 내부 IP 주소에 매핑합니다. 이는 또한 Nginx 구성 파일을 "설정하고 잊어버릴" 수 있음을 의미합니다.
잠재적인 문제는 로컬 호스트 이름이 구성되지 않은 경우 역방향 프록시가 요청을 다시 인터넷으로 보내는 것입니다. 하지만 NAT는 이것이 무한 루프에 빠지는 것을 막을 것이라고 생각합니다.
이 솔루션은 내 머리와 종이에 작동하는 것 같지만 한동안 설정할 수 없습니다.
이것이 작동하지 않는 이유를 아는 사람이 있습니까?
감사해요.