외부 아이피 주소로 내부 서버 페이지 로딩 시키기 문의 입니다.
일단.. 관심가져 주셔서 감사합니다..
// A 서버와 B 서버의 php.ini에서..
allow_url_fopen = on
allow_url_include = on
로 변경 하였습니다.
// A서버는 192.168.0.2(내부아이피)로 잡으면.. 10.0.0.2(외부아이피)로 접속이 됩니다.(예입니다.)
// B서버는 내부 아이피(서버)는 192.168.0.3 입니다. 여기 링크걸어서 한페이지 전체를 가지고 옵니다.
// A서버 에서 include('http://192.168.0.3/index.php">http://192.168.0.3/index.php'); 로 include 하게 됩니다.
상황1. db 정보는 정확하게 불러 옵니다(문자열은 가지고 옵니다.).
상황2. 거기에 착안해서 192.168.0.3의 모든 태그 img 주소를.. img src="http://<?=$_SERVER['HTTP_HOST']?>/img/logo.png" 이렇게 모두 바꿨습니다. 이렇게 안바꾸니 http://10.0.0.2/img/logo.png">http://10.0.0.2/img/logo.png로 이미지를 불러옵니다. 10.0.0.2에는 logo.png 파일이 없습니다ㅠ
상황3. 제 노트북에서 테더링을 잡고 10.0.0.2로 접속을 하게 되면 문자열은 정상적으로 출력이 되나......
현상1. 사진은 엑박이 뜹니다.
현상2. 속성 주소는 192.168.0.3/img/logo.png 로 보입니다.
현상3. 여전히 모든 이미지는 엑박 처리가 됩니다.
자체 판단 내용 : 외부 아이피 10.0.0.2로 접속을 하였기 때문에 내부 서버 192.168.0.3의 이미지 주소를 땡겨 올 수 있느냐 없느냐의 차이같습니다. 10.0.0.2로 접속을 하여 192.168.0.3의 db 문자열을 가지고 올 수 있으면 이미지도 가지고 올 수 있지 않겠냐는 판단인데.... 내부 설정을 건들여야 하는지.. 아니면 다른 방법이 있는지 문의 드립니다.
포트포워딩은 불가능합니다; 제가 네트워크는 건드릴 수가 없거든요;;
각 서버는 접근 가능합니다. 외부 아이피 한개 받았고 A,B 서버는 제 앞에 있거든요;;
B서버의 이미지 파일을 img src="http://192.168.0.3/img/logo.png">http://192.168.0.3/img/logo.png" 로 코딩했는데 엑박이 뜹니다.
어떻게 해결하면 될까요ㅠㅠ
A 서버 외부 아이피 주소로 B 내부 서버 페이지를 통채로 가지고 오고자 합니다ㅠ
답변 2개
포트포워딩할 상황도 안되고...
nfs 서버 세팅할 상황도 안되고...
오로지 php로만 해결해야 한다면....
A서버(10.0.0.2) - /get_image.php
</span> </p><p><?php</p><p>$path = $_GET['path'];</p><p>$path = "<a href="<a href="http://192.168.0.3$path" target="_blank" rel="noopener noreferrer">http://192.168.0.3$path</a>"><a href="http://192.168.0.3$path" target="_blank" rel="noopener noreferrer">http://192.168.0.3$path</a></a>";</p><p>$ext = pathinfo($path, PATHINFO_EXTENSION); </p><p> </p><p>$fp = fopen($path, 'rb');</p><p><span style="font-size: 11pt;">header("Content-Type: image/$ext");</span> </p><p>header("Content-Length: " . filesize($path));</p><p>fpassthru($fp);</p><p>
A서버(10.0.0.2) - /a.php
</p><p style="font-size: 14.6667px;"><span style="font-size: 11pt;"><script></span> </p><p style="font-size: 14.6667px;"> var getLocation = function(href) {</p><p style="font-size: 14.6667px;"> var l = document.createElement("a"); <span style="font-size: 11pt;">l.href = href; </span><span style="font-size: 11pt;">return l;</span></p><p style="font-size: 14.6667px;"> };</p><p style="font-size: 14.6667px;"> </p><p style="font-size: 14.6667px;"> function get_image_from_b_server(){</p><p style="font-size: 14.6667px;"><span style="font-size: 14.6667px;"> var image = event.srcElement;</span> </p><p style="font-size: 14.6667px;"><span style="font-size: 14.6667px;"> var l = getLocation( image.src );</span> </p><p style="font-size: 14.6667px;"> if ( l.hostname != '192.168.0.3' ) return;</p><p style="font-size: 14.6667px;"> image.src= '/get_image.php?path=' + l.pathname;</p><p style="font-size: 14.6667px;"> }
<span style="font-size: 14.6667px;"> </span></p><p style="font-size: 14.6667px;"><span style="font-size: 14.6667px;"> window.onload = function(){</span></p><p style="font-size: 14.6667px;"><span style="font-size: 14.6667px;"> var images = document.getElementsByTagName('img'); </span></p><p><span style="font-size: 14.6667px;"> for(var i = 0; i < images.length; i++) {</span> </p><p><span style="font-size: 14.6667px;"> images[i].onerror = </span><span style="font-size: 14.6667px;">get_image_from_b_server</span><span style="font-size: 11pt;">;</span></p><p><span style="font-size: 14.6667px;"> }</span></p><p><span style="font-size: 14.6667px;"> };</span></p><p><span style="font-size: 14.6667px;"> </span></p><p style="font-size: 14.6667px;"></script></p><div><span style="font-size: 11pt;"><?php</span>
</div><p><span style="font-size: 14.6667px;">include('</span><a href="<a href="http://192.168.0.3/index.php" target="_blank" rel="noopener noreferrer">http://192.168.0.3/index.php</a>" style="font-size: 14.6667px;"><a href="http://192.168.0.3/index.php" target="_blank" rel="noopener noreferrer">http://192.168.0.3/index.php</a></a><span style="font-size: 14.6667px;">');</span> </p><p><span style="font-size: 14.6667px;">?></span></p><p><span style="font-size: 11pt;">
B서버(192.168.0.3) - /index.php
</p><p><span style="font-size: 11pt;"><img src="/img/logo.png"</span><span style="font-size: 11pt;">></span></p><p>
답변에 대한 댓글 1개
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인