테스트 사이트 - 개발 중인 베타 버전입니다

외부 아이피 주소로 내부 서버 페이지 로딩 시키기 문의 입니다.

인메모리 9년 전 조회 4,969

일단.. 관심가져 주셔서 감사합니다..

 

// 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개

9년 전

포트포워딩할 상황도 안되고...

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개

인메모리
9년 전
의뢰를 해야 할까 싶습니다;; 혹시 괜찮으시면......쪽지라도 주심이;;

댓글을 작성하려면 로그인이 필요합니다.

제가 알기로 그누에선 물리적인 경로의 이미지로 썸네일 함수를 거쳐 웹상에 보여줄 이미지 파일을

생성하는걸로 알고 있습니다.

아마도 물리적으로 접근을 할 수 없어 썸네일 이미지가 생성되지 않는건 아닐까요?

해당 경로 가셔서 썸네일로 생성된 이미지가 있나 찾아 보셨으면 합니다. 

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인