Как это реализовано?

donkyhot

Есть сайт электронной библиотеки.
http://www.coop.chuvashia.ru:81/phpopac/elcat_out.php
1. что значит
 :81 
в названии сайта?
2. если доменное имя делегировать на другой хостинг, то как можно будет добраться до этой электронной библиотеки?

Kitry

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

donkyhot

а можно по-русски?
правильно ли я понял, что порт указывает некий компьютер в сети, на котором как раз и располагается нужная мне электронная библиотека, т.е., если я делегирую этот домен на другом хостинге, то технически я смогу по ip и порту на другом хостинге ссылаться на эту библиотеку и она будет работать?

hiper-hoper

порт ни на что не указывает.
на порт (дополнительно к ip) можно обратится.
стандартный порт(по умолчанию) для протокола http - 80. в твоем же случае кто-то решил использовать нестандартный порт, поэтому при запросе надо его указывать.
вот, например, можешь так зайти попробовать.
http://forumbgz.ru:80/lite
Если хостинг "виртуальный", то скорее всего ничего не получится - будет использоваться стандартный 80-й порт, и в адресе надо будет использовать его (ну или ничего, т.к. он по-умолчанию используется).
если хостинг - vps или свой сервер, то надо просто настроить веб-сервер, чтобы он использовал не 80-й порт, а 81-й, меняется обычно одной строчкой в настройках.
Это все в случае, если тебе надо оставить прежние ссылки, если же такой задачи не стоит, то ничего делать не надо - просто убрать :81 из запросов.

donkyhot

а как можно будет сюда же (http://www.coop.chuvashia.ru:81/phpopac/elcat_out.php) обратиться, если доменное имя переедет?

zorin29

Ну смотри, www.coop.chuvashia.ru - это имя сервера. Когда ты отправляешь к нему запрос, твой компьютер обращается к DNS (Domain Name Server) и вычисляет "физический" IP-адрес машины, куда надо отправить запрос.
Затем он устанавливает соединение к 81-му порту этой машины. Если по этому порту сидит веб-сервер и слушает запросы, то твой запрос будет обработан как надо.
То есть, если этот сайт переедет на другой физический адрес, то хозяину этого сайта надо будет:
а) настроить DNS так, чтобы имя www.coop.chuvashia.ru указывало на IP нового сервера
б) настроить новый сервер так, чтобы он принимал соединения по 81-му порту.

donkyhot

то что сейчас по 81-ому порту остается на старом сервере.
т.е. на новом хостиге нужно будет просто по физическому ip старого сервера и этому порту давать ссылку?

AlexV769

на новом хостиге нужно будет просто по физическому ip старого сервера и этому порту давать ссылку?
Зависит от настроек HTTP-демона на новом хостинге. Если он будет сконфигурирован работать на 80м порту, то порт можно будет опустить в URLе.

donkyhot

видимо я коряво сформулировал вопрос.
Попробуем еще разок.
Есть такая ситуация.
Есть сайт http://www.coop.chuvashia.ru (не сочтите за рекламу, хочется задать вопрос на реальном примере) который хостится на Сервере1.
На этом же сервере есть электронная библиотека, к которой можно обратиться, используя следующую конструкцию:
http://www.coop.chuvashia.ru:81/phpopac/elcat_out.php
Стоит задача: перенести только сайт http://www.coop.chuvashia.ru на другой хостинг Сервер2. При этом электронная библиотека остается на Сервере1. Как потом с этого сайта, уже на Сервере2, попасть в эту библиотеку на Сервере1?
Насколько я понимаю, если мы будет использовать прежнюю конструкцию http://www.coop.chuvashia.ru:81/phpopac/elcat_out.php, то мы будем обращаться по ней к Серверу2, на котором физически этой библиотеки нет.

AlexV769

Сделать имя lib.chuvashia.ru, ссылающееся на IP-адрес сервера1, перевесить демона библиотеки с 81 порта на 80й и ходить в библиотеку по урлу http://lib.chuvashia.ru.

Maximilian

ещё, как вариант, можно на Сервере2 сделать NS запись вида
xxx.xxx.xxx.xxx coop.chuvashia.ru # где иксы - это адрес твоей библиотеки на сервере1
и положить скрипт по адресу http://www.coop.chuvashia.ru:81 скрипт, который будет проксировать запросы на Сервер1:
<?php
$url = "xxx.xxx.xxx.xxx".$_SERVER['REQUEST_URI'];
echo file_get_contents($url);
?>
или так
<?php
$url = "xxx.xxx.xxx.xxx".$_SERVER['REQUEST_URI'];
Header("Location: $url");
exit;
?>

Maximilian

да, и в апаче нужно постаить, чтобы всё заварачивало на твой скрипт

AlexV769

Подобный "скрипт" на ура реализуется штатными средствами большинства используемых HTTP-серверов.

donkyhot

видимо то, что нужно.
спасибо!

PooH

<?php
$url = "xxx.xxx.xxx.xxx".$_SERVER['REQUEST_URI'];
echo file_get_contents($url);
?>
а не проще через htaccess это сделать?

Maximilian

а пост запросы можно реврайтить через .htaccess ?

PooH

а почему бы и нет
хотя я не спец, но такой редирект дешевле обходится, наверное

tokuchu

а пост запросы можно реврайтить через .htaccess ?
А твой скрипт это реализует?
Оставить комментарий
Имя или ник:
Комментарий: