2013-09-05 2 views
1

Есть ли способ создать «iframe-like» на стороне сервера? Дело в том, что мне нужно перейти на страницу сертификации внутренней сети моего сообщества с части администрирования нашего веб-сайта.Эквивалент iframe на стороне сервера

У меня уже есть ссылка SQL на базу данных, которая отлично работает, но здесь я бы получил доступ к страницам без дублирования исходного кода на веб-сервере.

Мой infrasructure заключается в следующем:

Вебсервер находится в DMZ и имеет следующий локальный IP: 192.168.63.10. Наш сервер интрасети НЕ находится в DMZ и имеет следующий IP: 192.168.1.20.

Наш Firewall имеет правила serverals и я просто добавил следующее: DMZ-> LAN Разрешить HTTP/HTTPS трафик и LAN-> DMZ Разрешить HTTP/HTTPS (так же, как мы сделали для SQL-перенаправление)

Я пробовал следующий PHP функции:

$ch = curl_init(); 

// set URL and other appropriate options (also tried with IP adress instead of domain) 
curl_setopt($ch, CURLOPT_URL, "http://intranet.socname.ch/"); 
curl_setopt($ch, CURLOPT_HEADER, 0); 

// grab URL and pass it to the browser 
curl_exec($ch); 

// close cURL resource, and free up system resources 
curl_close($ch); 

Я также попытался:

$page = file_get_contents('http://192.168.1.20/'); 
echo $page; 

Или:

header('Location:http://192.168.1.20'); 

Но определить все эти случаи, она отлично работает от местных, но не из Интернета. Из Интернета он не загружается и через некоторое время говорит, что сервер не отвечает.

Благодарим за помощь!

+0

Звучит как проблема DNS. Фактически вы можете иметь сервер, который отвечает на http: 80, действует как сервер, но сам не может «выходить из системы». BTW: Ваш локальный хост также находится в Интернете, нет никакой разницы рядом с локальным хостом, вероятно, не видно снаружи. Проверьте настройки DNS сервера! – davidkonrad

+0

192.168.0.0 адреса являются частными IP-адресами, они не будут доступны из Интернета. Вам нужно будет создать прокси-сервер на вашем публичном сервере, чтобы получать и повторно загружать контент в мир в целом. – Orangepill

ответ

1

Ваше первое и второе решение может работать. Может ли доступ к вашему веб-серверу 192.168.1.20? (попробуйте ping 192.168.1.20 на вашем веб-сервере) или разрешите имя хоста intranet.socname.ch? (Попробуйте nslookup intranet.socname.ch)

Что вы ищете называется «прокси», вот простой PHP проект, который я нашел: https://github.com/Alexxz/Simple-php-proxy-script

Скачать репозиторий, скопируйте example.simple-php-proxy_config.php в simple-php-proxy_config.php и изменить $dest_host = "intranet.socname.ch";

Он должен сделать трюк! (также может потребоваться изменить $proxy_base_url)

+0

Веб-сервер может выполнить ping интрасеть (только когда я отключил блокировку PING в настройках брандмауэра). Код прокси-сервера кажется хорошим решением, но он также перенаправляет страницу на: '192.168.0.1: 8090/httpclient.html? U = http: // intranet.socname.ch' Где 192.168.0.1 - это мой IP-адрес брандмауэра – BananasSplitter

+0

Неважно ! Это решение работает нормально! Правила моего брандмауэра были в конфликте с другим, и поэтому вчера это не работало ... Спасибо за ответ :)! – BananasSplitter

Смежные вопросы