2016-11-27 5 views
1

각 고객마다 고유 한 프로필이있는 앱을 개발 중입니다. 이 기능 중 하나는 고객이 소유 한 시스템에 SOAP 요청을 보낼 수있게합니다. 현재 고객 웹 서비스와의 모든 통신은 앱과 동일한 단일 IP 주소로 진행됩니다. 나는 SOAP 통신이 자신의 IP를 가지기를 바랄 것이고, 나머지는 앱과 분리 될 것이다.PHP 앱, 웹 서비스 및 별도의 IP 주소

이 앱은 UserFrosting 프레임 워크를 사용하여 에서 PHP을 기록하고 그것은 곧 아마존 AWS에서 호스트됩니다.

그런 분리가 가능합니까? 이것을 PHP 레벨에서 할 수 있습니까?

이유는 고객이 방화벽에서 웹 서비스 관련 IP 만 허용하도록 허용하는 것입니다.

답변

1

짧은 대답은 아니오입니다. 이것은 PHP를 통해 수행 할 수 없습니다.

PHP는 SOAP과 관련하여 OSI 모델 (HTTP)의 응용 프로그램 계층에서 실행되므로이 ​​계층을 사용할 때 IP 주소가 이미 할당되어 있음을 의미합니다.

https://en.wikipedia.org/wiki/OSI_model

이 작업을 수행하려면 내부 IP 범위에서 통신이 개 웹 서버 (메인 & SOAP)을 가질 수 있지만, SOAP에 대한 요청은 다음 고객에게 줄 것이다 그것의 자신의 WAN 주소를 아웃 바운드 갈 것 . 당신이 두 개의 서버, 두 번째 네트워크 카드 (/ 가상 하드웨어) 및 서버에서 규칙을 듣기 아파치 비슷한 결과를 얻을 수의 경로를 아래로 가고 싶지 않은 경우 :

https://serverfault.com/questions/511018/how-to-configure-apache-to-run-on-multiple-network-interfaces#511020

이 일을 또 다른 방법은, SOAP 요청을 위해 다른 TCP 포트를 사용하여 클라이언트 사이트에 통신합니다. 예를 들어 모든 SOAP 요청을 80이 아닌 8080 포트의 클라이언트 WAN IP로 전송하고 방화벽에 인바운드 NAT (Network Address Translation)를 배치하여 WAN IP에서 들어오는 모든 트래픽을 TCP 8080은 TCP 80으로 다시 변환되므로 서버가 요청을 처리 할 수 ​​있습니다. 서버가 해당 포트에서 수신 대기중인 경우이를 다시 TCP 8080으로 변환해야합니다.