Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Apache

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Проблема с 2-мя IP
 
 автор: AlDmAn   (27.11.2005 в 12:52)   письмо автору
 
 

Есть сайт поставленной на шлюзовой машине, как следствие имеется проблема с тем что IP#1 не виднеется со стороны #2, и соответсвенно наоборот.
Доступ к сайту с обеих сторон осуществляется по IP.
Там же поставлен FTP сервер и на него с сайта идут ссылки, но вся беда в том что если прописать IP#1, то со стороны #2 на него уже не зайти...
Вопрос: как сделать чтобы работало с 2х сторон?

   
 
 автор: glsv (Дизайнер)   (29.11.2005 в 00:33)   письмо автору
 
   для: AlDmAn   (27.11.2005 в 12:52)
 

>Доступ к сайту с обеих сторон осуществляется по IP.
Здесь что имеется ввиду?

Что к сайту обращаются по ip-адресу, например:
192.168.200.1 (с одной стороны) и 192.168.201.1 (с другой стороны)
Т.е. эти 2 IP-адреса принадлежат одной машине и назначены 2 сетевым интерфейсам на ней.
Но все должно работать... если правильно настроена сеть.

А Apache как настроен? На нем установлен только один сайт или есть виртуальные хосты? Виртуальные хосты на основе имен или IP-адресов?

>Там же поставлен FTP сервер и на него с сайта идут ссылки
Приведите пример ссылки.

Конкретизируйте вопрос... иначе не ясно о чем именно идет речь.

   
 
 автор: AlDmAn   (29.11.2005 в 02:03)   письмо автору
 
   для: glsv (Дизайнер)   (29.11.2005 в 00:33)
 

>>Доступ к сайту с обеих сторон осуществляется по IP.
>Здесь что имеется ввиду?

То и имеется собссно, что есть виртуальный хост доступ к которому и дается и с одного интерфейса и с другого, но под разными айпи.
Пример:
Имя сайта: server1
IP#1: 10.70.7.128
IP#2: 10.70.7.129

При запросе вида http://10.70.7.128 дается доступ из сети#1
При запросе вида http://10.70.7.129 дается доступ из сети#2

Доступа на к IP:10.70.7.128 со стороны сети#2 нет никакого (и не должно быть)

>Что к сайту обращаются по ip-адресу, например:
>192.168.200.1 (с одной стороны) и 192.168.201.1 (с другой
>стороны)
>Т.е. эти 2 IP-адреса принадлежат одной машине и назначены 2
>сетевым интерфейсам на ней.
>Но все должно работать... если правильно настроена сеть.

Все работает, ссылки внутри http поставленны относительные, по-этому сам сайт работает

>А Apache как настроен? На нем установлен только один сайт
>или есть виртуальные хосты? Виртуальные хосты на основе имен
>или IP-адресов?

Установлен 1 виртуальный хост на основе имени ассоциированного с IP (иначе не работало)
Собственно это и есть сайт, остальные (стандартные) лежат, но к ним доступа нет.

>>Там же поставлен FTP сервер и на него с сайта идут
>ссылки
>Приведите пример ссылки.

ftp://10.70.7.128/music/test.mp3
Ссылка такого вида есстествено не работает из сети#2

>Конкретизируйте вопрос... иначе не ясно о чем именно идет
>речь.

Какую переменную/значение/функцию поставить вместо 10.70.7.128, чтобы выдавался IP необходимый для каждой из сетей (IP сайта)

Надеюсь ответил достаточно подробно...

   
 
 автор: Hiper   (29.11.2005 в 02:17)   письмо автору
 
   для: AlDmAn   (29.11.2005 в 02:03)
 

попробуй
IP#1: 10.70.7.128
IP#2: 10.70.8.129

Мне помогло

   
 
 автор: glsv (Дизайнер)   (29.11.2005 в 07:17)   письмо автору
 
   для: AlDmAn   (29.11.2005 в 02:03)
 

>Имя сайта: server1
>IP#1: 10.70.7.128
>IP#2: 10.70.7.129

Но, кстати, это же адреса одной подсети…

>Какую переменную/значение/функцию поставить вместо 10.70.7.128, чтобы выдавался IP необходимый для каждой из сетей (IP сайта)

А вы настройте виртуальный хост в Apache не на основе IP-адреса, а на основе имени. И проблема IP-адресов решится.

Если не получится, то прикрепите в форум свой httpd.conf

   
 
 автор: AlDmAn   (29.11.2005 в 15:31)   письмо автору
 
   для: glsv (Дизайнер)   (29.11.2005 в 07:17)
 

>Имя сайта: server1
>IP#1: 10.70.7.128
>IP#2: 10.70.7.129
>
>Но, кстати, это же адреса одной подсети…

Да но подсети бывают не только по 256 IP адресов, допустимо использовать подсети с адресами от n*2^x, до (n+1)*2^x, что у нас и используется...

>А вы настройте виртуальный хост в Apache не на основе
>IP-адреса, а на основе имени. И проблема IP-адресов решится.

В предыдуещем сообщении: "Установлен 1 виртуальный хост на основе имени ассоциированного с IP (иначе не работало). Собственно это и есть сайт, остальные (стандартные) лежат, но к ним доступа нет."

Далее: "Все работает, ссылки внутри http поставленны относительные, по-этому сам сайт работает"

Попробую переформулировать вопрос:
ссылка вида ftp://10.70.7.128/music/test.mp3 - является абсолютной;
Какую переменную/значение/функцию поставить в данной ссылке вместо 10.70.7.128, чтобы выдавался IP необходимый для каждой из сетей (текущий IP сайта), то есть сделать ссылку относительной.
Без применения DNS!

Может какие-то переменные окружения?

   
 
 автор: glsv (Дизайнер)   (29.11.2005 в 22:15)   письмо автору
 
   для: AlDmAn   (29.11.2005 в 15:31)
 

> Установлен 1 виртуальный хост на основе имени ассоциированного с IP
Вот это не понятно.

Если виртуальный хост определен на основе имени, то и обращение к сайту должно идти по имени.

http://www.mysite.ru

Но, конечно, в сети должен быть DNS, либо должны быть задействованы файлы hosts
Вот это я имел ввиду. Но проблема не в настройках Apache. У вас же ссылки на ftp по IP-адресу стоят.
У меня сейчас нет под рукой такой шлюзовой машины, чтобы поэкспериментировать. Попробуйте изучить вывод функции phpinfo(), вызывая ее с обоих сторон. Возможно, найдете переменную с IP-адресом, который будет отличаться.

Предполагаю, что какая-то из этих переменных Вам поможет

$_SERVER["HTTP_HOST"]
$_SERVER["SERVER_ADDR"] 

А также можно анализировать значение переменной

$_SERVER["REMOTE_ADDR"]

   
 
 автор: AlDmAn   (30.11.2005 в 01:38)   письмо автору
 
   для: glsv (Дизайнер)   (29.11.2005 в 22:15)
 

>>Установлен 1 виртуальный хост на основе имени ассоциированного с IP
>Вот это не понятно.

Может криво выразился...
Задано имя хоста вида http://www.mysite.ru
Сделаны Alias с http://10.70.7.128/ и http://10.70.7.129/
Таким образом обходится и DNS и host

>Но проблема не в настройках Apache. У
>вас же ссылки на ftp по IP-адресу стоят.

Ес, неужели мне удалось донести суть проблемы?! Уже прогресс!

>Предполагаю, что какая-то из этих переменных Вам поможет
>

>$_SERVER["HTTP_HOST"]
>$_SERVER["SERVER_ADDR"] 
>

>А также можно анализировать значение переменной
>

>$_SERVER["REMOTE_ADDR"]
>


Спасибо!
Если еще найдется добрый человек который обьяснит мне совсем на пальцах как это реализовать или хотя ссылку на документацию нормальным языком (на apache.org уже пробовал читать, но там предполагается уже определенный набор знаний, которых у меня нет :-( ), то я буду благодарен вдвойне!

   
 
 автор: AlDmAn   (30.11.2005 в 17:20)   письмо автору
 
   для: AlDmAn   (29.11.2005 в 15:31)
 

Спасибо за помощь!
На уровне скриптов разобрался, и все-таки вопрос остается. Как это сделать без использование скриптов?

ссылка вида ftp://10.70.7.128/music/test.mp3 - является абсолютной;
Какую переменную/значение/функцию поставить в данной ссылке вместо 10.70.7.128, чтобы выдавался IP необходимый для каждой из сетей (текущий IP сайта), то есть сделать ссылку относительной?

Очень не хочется писать обработчик ссылок + не все ссылки с сайта через него проходят, например в новостях и коментах...

   
 
 автор: glsv (Дизайнер)   (30.11.2005 в 23:08)   письмо автору
 
   для: AlDmAn   (30.11.2005 в 17:20)
 

>На уровне скриптов разобрался
А уровне каких скриптов? на php?

> Как это сделать без использование скриптов?
Вы хотите что-то в HTML прописать? Но в языке HTML вообще нет ничего подобного. Чтобы использовать серверные переменные, в которых содержится нужный IP нужно использовать серверные скрипты. Т.е. php.

Есть еще вариант: использовать модуль mod_rewrite. Тогда преобразование будет делать сам Apache. Но нужно знать в какой серверной переменной содержится нужный IP. Вы писали, что решили проблему на уровне скриптов. Из какой переменной Вы брали IP?

   
 
 автор: AlDmAn   (01.12.2005 в 19:08)   письмо автору
 
   для: glsv (Дизайнер)   (30.11.2005 в 23:08)
 

>Вы писали, что решили проблему на уровне скриптов. Из какой переменной Вы брали IP?

server_addr подошел...

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

   
 
 автор: glsv (Дизайнер)   (02.12.2005 в 21:46)   письмо автору
 
   для: AlDmAn   (01.12.2005 в 19:08)
 

А нет - ошибся. Модулем mod_rewrite сделать ничего нельзя.

>А то что нельзя переменную в ссылку вставлять
Переменную то можно вставлять. Но делать это можно только с помощью языка программирования, где переменные существуют, как сущность, а HTML-это язык разметки - там переменных, в принципе, нет.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования