Kucher2 122 Опубліковано: 2009-11-05 18:22:38 Автор Share Опубліковано: 2009-11-05 18:22:38 Пробовал и с via. У меня так реализовано прозрачное проксирование. Но на виртуал хост не работает. Буду искать. P.S. Теперь лезет "Тестовая страница Apache". Кажется дошло - таким способом не выйдет. :/ Копаю дальше. Ссылка на сообщение Поделиться на других сайтах
Kucher2 122 Опубліковано: 2009-11-06 10:55:04 Автор Share Опубліковано: 2009-11-06 10:55:04 Вот только почему он лезет на тестовую страницу? О_о Ссылка на сообщение Поделиться на других сайтах
rtrt 53 Опубліковано: 2009-11-06 12:11:53 Share Опубліковано: 2009-11-06 12:11:53 покажите как настроены виртуалхосты Ссылка на сообщение Поделиться на других сайтах
Kucher2 122 Опубліковано: 2009-11-06 12:50:22 Автор Share Опубліковано: 2009-11-06 12:50:22 NameVirtualHost *:80 #Listen 80 <VirtualHost 10.0.0.10> DocumentRoot /usr/local/www/stg ServerName 10.0.0.10 <Directory "/"> Options None AllowOverride all Order allow,deny Allow from all </Directory> </VirtualHost> <VirtualHost 10.0.0.8:80> DocumentRoot /usr/local/www/red ServerName 10.0.0.8 ErrorLog /usr/local/apache/ver_log CustomLog /usr/local/apache/cust_log common <Directory "/"> Options None AllowOverride all Order allow,deny Allow from all </Directory> </VirtualHost> #Listen 80 можно ставить или убирать, можно задавать порты (81-й) вместо IP-адресов - результат один. Странно, что из браузера если набрать искомый хост - он работает, но через fwd 10.0.0.8 или fwd 127.0.0.1,81 - перекидывает на тестовую Apache. Ссылка на сообщение Поделиться на других сайтах
BABAY 2 Опубліковано: 2009-11-06 18:47:29 Share Опубліковано: 2009-11-06 18:47:29 Нужно настроить апач таким образом, чтобы он при обращении по ip отдавал нужную страницу. Или делать редирект в два этапа: - фаерволом перенаправлять на вэбсервер - вэбсервером с помощью redirect или mod_rewrite и т.д. перенаправлять на нужную страницу Ссылка на сообщение Поделиться на других сайтах
Kucher2 122 Опубліковано: 2009-11-06 19:42:40 Автор Share Опубліковано: 2009-11-06 19:42:40 Мне надо регулировать этот процесс правилами из OnConnect - если я приплету сюда ещё и Апач, эта задача станет геморной. Должно быть более простое решение. Второй день бьюсь. Смешно просто - не могу сделать элементарное: перенаправить юзера на нужную страницу, когда сервер находится в полном моём распоряжении. Ссылка на сообщение Поделиться на других сайтах
gall 6 Опубліковано: 2009-11-06 20:51:34 Share Опубліковано: 2009-11-06 20:51:34 С ipfw не знаком На iptables я бы попробовал для одноразового редиректа покопать в сторону лимитирующих критериев (quota и quota2) почитать можно тут Возможно и в ipfw существуют подобные модули. Ссылка на сообщение Поделиться на других сайтах
BABAY 2 Опубліковано: 2009-11-07 08:58:46 Share Опубліковано: 2009-11-07 08:58:46 Второй день бьюсь. Смешно просто - не могу сделать элементарное: перенаправить юзера на нужную страницу, когда сервер находится в полном моём распоряжении. Вы много хотие от фаервола. Фаервол умеет перенаправлять трафик на IP и порт, на URL - перенаправлять он не умеет. Ссылка на сообщение Поделиться на других сайтах
Kucher2 122 Опубліковано: 2009-11-07 10:40:45 Автор Share Опубліковано: 2009-11-07 10:40:45 Я и пытаюсь переправить на IP, я виртуальный сделал. И сегодня свершилось: заработало. Позже выложу решение для страждущих. Ссылка на сообщение Поделиться на других сайтах
Kucher2 122 Опубліковано: 2009-11-07 18:37:57 Автор Share Опубліковано: 2009-11-07 18:37:57 Имеем: Сервер на ОС FreeBSD, билинг Stargazer 2.406. Задача: сделать перенаправление http-запросов с целью оповещения юзеров. Сделал как смог. Прошу не пинать. Если можете предложить лучше - выкладывайте. Решение. Сначала редктируем /usr/local/apache/conf/http.conf: NameVirtualHost *:80 Listen 80 Listen 81 <VirtualHost *:80> DocumentRoot /usr/local/www/stg ServerName localhost <Directory "/"> Options None AllowOverride all Order allow,deny Allow from all </Directory> </VirtualHost> <VirtualHost *:81> DocumentRoot /usr/local/www/red ServerName localhost ErrorLog /usr/local/apache/ver_log CustomLog /usr/local/apache/cust_log common <Directory "/"> Options None AllowOverride all Order allow,deny Allow from all </Directory> </VirtualHost> Таким образом создаём 2 виртуальных хоста на 80 и 81 порту. Перезапускаем Апач: /usr/sbin/apachectl restart Поскольку простой форвардинг на 81-й порт должного действия не возымел (с этой проблемой безрезультатно промучался не только я), пришлось воспользоваться костылём в виде rinetd. Теперь ставим из портов: cd /usr/ports/net/rinetd && make && make install clean Добавим строку в файл /etc/rc.conf для разрешения запуска процесса демона echo "rinetd_enable="YES"" >> /etc/rc.conf Делаем: touch /usr/local/etc/rinetd.conf В /usr/local/etc/rinetd.conf добавляем: 127.0.0.1 81 10.0.0.1 81 10.0.0.1 - адрес шлюза в локальной сети (внутренний ИФ). Теперь рисуем два простых скрипта: Получаем список наших юзеров в файл. Этот скипт удобно запускать отдельно, чтобы иметь возможность убирать лишних юзеров из списка необходимых к редиректу. #!/bin/sh ls /var/stargazer/users > /usr/local/www/red/users exit Скрипт, "помечающий" юзеров к редиректу по списку, созданного скриптом выше. Просто создаёт пустой файлик forum в каталоге юзера. #!/bin/sh a=`grep -c "." /usr/local/www/red/users` a=`expr $a + 0` g=0 while expr $a \> 0 do b=`awk NR==$(($g+1)) /usr/local/www/red/users` touch /var/stargazer/users/$b/forum g=$(($g + 1)) a=$(($a - 1)) done exit А теперь правим /etc/stargazer/OnConnect, добавляя такой фрагмент: ... if find /var/stargazer/users/$1/forum then ${fwcmd} add `expr $id '*' 10 + 29000` fwd 127.0.0.1,81 tcp from $ip to any 80,8080,3128 ${fwcmd} add `expr $id '*' 10 + 29001` allow all from any to $ip ${fwcmd} add `expr $id '*' 10 + 29002` allow all from $ip to any rm -R /var/stargazer/users/$1/forum echo "C `date +%Y.%m.%d-%H.%M.%S``arp $ip` $cash" >> /var/stargazer/users/$login/connect.log ${sgconf} -s <IP servera> -p 5555 -a admin -w <pass> -u $1 -m "ОГАНИЧЕННОЕ ПОДКЛЮЧЕНИЕ ПОСЕТИТЕ ФОРУМ: http:/10.0.0.2/forum ЗАТЕМ ПЕРЕПОДКЛЮЧИТЕСЬ" exit 1 fi ... $1 - это переменная, хранящая логин текущего юзера; $ip - соответственно его IP-адрес; $id - уникальный идентификатор юзера; Читайте документацию Stargazer в прилагаемом pdf-файле по этим переменным, если что-то непонятно. Логика проста. При коннекте скрипт проверяет есть ли в каталоге юзера файлик forum и если да - выдаёт через STG, на всякий случай, сообщение "ОГРАНИЧЕННОЕ ПОДКЛЮЧЕНИЕ ПОСЕТИТЕ ФОРУМ: http:/10.0.0.2/forum ЗАТЕМ ПЕРЕПОДКЛЮЧИТЕСЬ". В добавок ко всему, форвардит юзера на виртуальный хост (81-й порт), где он увидит предупреждающую страничку, на которой предлагается перейти на форум (знаю что криво, писал как умел): <?php echo "Если Вы видите эту страницу, значит возникла необходимость в том, чтобы Вы посетили форум." . '<br>'; echo "Пожалуйста, учавствуйте в обсуждении вопросов и читайте объявления, это очень важно!" . '<br><br><br>'; echo "Для доступа к Интернет-страницам - выполните переподключение в авторизаторе." . '<br><br>'; echo '<hr />'; ?> <a href="http://10.0.0.2/forum/">Вход на форум </a><br><br> Можно так же добавить в скриптик что-то вроде этого: Ссылка на пример Для возобновления нормальной работы - юзеру остаётся лишь переподключить авторизатор: после отработки скрипта OnConnect, ключевой файл "forum" - удаляется. Минус, который мне удалось выявить: - не срабатывает редирект, а выкидывает на страницу с ошибкой, если юзер сразу после коннекта пытается перейти не на заглавную страницу какого-то сайта, а в его раздел (например если ссылка на раздел сайта запомнена в браузере). Ссылка на сообщение Поделиться на других сайтах
Aivan 2 Опубліковано: 2009-11-26 15:15:23 Share Опубліковано: 2009-11-26 15:15:23 простой форвардинг на 81-й порт должного действия не возымел (с этой проблемой безрезультатно промучался не только я), пришлось воспользоваться костылём в виде rinetd. Почему-же безрезультатно? Я помучался и в итоге заработало Кстати поначалу "костылем" тоже пользовался, но решение с ним получается кривое. Знаешь, в чем была проблема того, что апач перекидывал на IT WORKS! ? В версии апача!!! пока стоял 1.3 был этот косяк, переустановил на 2.2 - запустилось все со старта! Минус, который мне удалось выявить:- не срабатывает редирект, а выкидывает на страницу с ошибкой, если юзер сразу после коннекта пытается перейти не на заглавную страницу какого-то сайта, а в его раздел (например если ссылка на раздел сайта запомнена в браузере). а прописать страницы 403/404 религия не позволяет? DirectoryIndex index.php ErrorDocument 404 /index.php ErrorDocument 403 /index.php Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Создайте аккаунт или войдите в него для комментирования
Вы должны быть пользователем, чтобы оставить комментарий
Создать аккаунт
Зарегистрируйтесь для получения аккаунта. Это просто!
Зарегистрировать аккаунтВхід
Уже зарегистрированы? Войдите здесь.
Войти сейчас