Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » В помощь системному администратору » Apache как прокси сервер (mod_proxy)

Модерирует : lynx, Crash_Master, dg, emx, ShriEkeR

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2

Открыть новую тему     Написать ответ в эту тему

keha



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Может быть знает как сделать следующую штуку:
 
1) Есть веб сервер apache 1.3.22 поставленный на FreeBSD 4.5 (сервак во внешней сети).
2) Есть внутренний сервер (по умолчанию не доступный из Инета), на котором стоит 2000 винда и IIS. На нем же (внутреннем серваке) сделана ASP-шная веб страница для домена www.mydomen.ru
3) Домен www.mydomen.ru, веб сайт которого поднят на бзде по средством VirtualHost.
4) В локальной сети свой DNS сервер, а BSD - тоже DNS сервак но наружу.
 
Нужно сделать так чтобы чтобы при попытке зайти на www.mydomen.ru из Инета автоматически перебрасывало на внутренний сервак.
 
Можно ли это сделать с помощью mod_proxy или нет? Или это вообще не средствами апачей делается?

Всего записей: 82 | Зарегистр. 15-08-2001 | Отправлено: 15:39 16-08-2002 | Исправлено: lynx, 05:32 15-06-2003
UncoNNecteD



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
keha
Нужен именно прокси?
Может проще порт замапить?

----------
-= Я тут чертовски давно =-

Всего записей: 4040 | Зарегистр. 21-03-2002 | Отправлено: 16:39 16-08-2002
keha



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Нужно, чтобы люди из инета попадали на внутренний сервак. А как это сделать я не очень представляю.  
Первое, что посоветовали - модуль mod_proxy попробовать. Вот я и пробую..... Уже два дня.....
Но пока без результатно.
 
UncoNNecteD
может замапить порт и лучше, но у меня на бзде еще десяток веб серверов сидит, и если замапить порт, то не будут ли все сервера ломиться на внутренний сервак?
 
или может я чего-нибудь не до конца понимаю?

Всего записей: 82 | Зарегистр. 15-08-2001 | Отправлено: 16:54 16-08-2002
djelektronik

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
keha не будут
я хз как там под бсд портмапинг делаеца
но прикол в том че када кто то из инета набирает твой доман то прога смотрит типа ага  
запрос на порт 80
и отправляет запрос на ИП в твою внутренюю сетку на тот адрес который ты укажеш при ннастройке мапинга
и тот порт тоже
еси я правильно понимаю то ето называеца маскарадинг
бсд должна ето в ядре держать  
 
еще ты могеш посредством виртуальный доменов прилепить к своему главному домену поддомен и привязать ево к сирваку во внутреней сети (ет офтопик но вдруг в тему)

Всего записей: 2530 | Зарегистр. 28-06-2001 | Отправлено: 13:42 17-08-2002
keha



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
djelektronik

Цитата:
но прикол в том че када кто то из инета набирает твой доман то прога смотрит типа ага запрос на порт 80

 
под прогой ты имеешь в виду бздю, я полагаю?
 
Ладно, попробуем в этом направлении плыть (маскарад и порт мапинг)

Всего записей: 82 | Зарегистр. 15-08-2001 | Отправлено: 13:33 21-08-2002
snop



local root
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
А кто-нибудь знает как заставить Апач 2.0.43 работать как кеширующий прокси ?

----------
Русский Mambo уже здесь

Всего записей: 1591 | Зарегистр. 27-04-2002 | Отправлено: 00:57 17-02-2003
lynx



Advanced lynx
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
snop
 

Цитата:
А кто-нибудь знает как заставить Апач 2.0.43 работать как кеширующий прокси ?

 
Как бы вот: http://httpd.apache.org/docs/mod/mod_mmap_static.html
он закачивает наиболее часто запрашиваемые документы в память и отддает их оттуда, а не с диска. Ты про это? Не пробовала, поставишь - поделить впечатлениями.

Всего записей: 11712 | Зарегистр. 08-05-2001 | Отправлено: 02:49 17-02-2003
snop



local root
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
lynx
Net,ia pro eto : http://httpd.apache.org/docs/mod/mod_proxy.html
Versia 1.3 rabotaet,no nado zastavit imenno versiu 2 rabotat.
reverse proxy rabotaet,a vot cache na diske ne ostavlaet

----------
Русский Mambo уже здесь

Всего записей: 1591 | Зарегистр. 27-04-2002 | Отправлено: 14:23 17-02-2003
snop



local root
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Мое решение можно прочесть здесь
Надеюсь оно поможет вам

----------
Русский Mambo уже здесь

Всего записей: 1591 | Зарегистр. 27-04-2002 | Отправлено: 19:16 18-02-2003
Zigzag McCrack

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Задача похожа, но так и не понял,как это можно сделать. Итак:
есть сервак, смотрящий в инет, у него один(!)  белый IP. На этом серваке штук 15 виртуальных хостов (Апач 1.3). На нем же DNS. Есть второй сервак, во внутренней сети, IP серый. Хочется раскидать хосты по этим двум сервакам, примерно так:
 
инет---[белый IP,  www.domain1.ru:80]---локалка--[серый IP, www.domain2.ru:80]
 
Чтобы посетитель, зайдя из инета и набрав www.domain1.ru, работал с апачем на первом серваке, а набрав www.domain2.ru - работал с апачем на втором серваке. Это в принципе можно сделать?
 

Всего записей: 1 | Зарегистр. 07-05-2004 | Отправлено: 14:37 07-05-2004
sandmex



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Насколько я знаю можно попробывать настроить mod_proxy, прописать domain1 frontend'ом а domain2 backend'ом...
прописать локальную зону в DNS...
 
еще вариант поставить domain2 на другой порт и перебросить все запросы на этот порт на другой сервак  
 
например  
инет---[белый IP,  www.domain1.ru:8080]---локалка--[серый  IP, www.domain2.ru:80]

Всего записей: 41 | Зарегистр. 07-05-2004 | Отправлено: 11:21 14-05-2004
ValeriyZ

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Использую Apache под виндой для раздачи .mp4 файлов. Я понимаю что для статики апач не рекомендуют но другого выхода (на мой взгляд) нет. Даже при не большой нагрузке (поток 75Мбит, постоянно около 250 активных потоков) за 10 часов Апач съедает 1,5Гб оперативки и больше не отвечает при этом отрубая все существующие потоки. Со временем понял, что для статики круче IIS нет. Да от беда, IIS не может: скорость резать на одно подключение; Довнлоад мастер блокировать; чужие ссылки на файлы блокировать. Потому возникла вот такая идея. Поставить перед IIS Апач как прокси чтоб отбирал только нужные запросы и передавал на IIS, а псевдостриминг уже делал IIS. Стоит ли с этим замарачиватся? Выгодою я хоть что-нибудь в такой связке? Если да, то какой прокси от Апач лучше использовать?  
 
Пробовал перед IIS ставить LightTPD, так он при запросе на файл сразу грузит его в оперативку и от дуда по чуть-чуть отдает. А прокси в LightTPD  практически без настроек. Общем плохая связка.  

Всего записей: 77 | Зарегистр. 22-05-2007 | Отправлено: 16:47 31-05-2011
kcode



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Задача похожа, но так и не понял,как это можно сделать. Итак:  
есть сервак, смотрящий в инет, у него один(!)  белый IP. На этом серваке штук 15 виртуальных хостов (Апач 1.3). На нем же DNS. Есть второй сервак, во внутренней сети, IP серый. Хочется раскидать хосты по этим двум сервакам, примерно так:  

 
 
Можно, просто на первом сервер (с белым IP) настроить proxy_mod, вот простой пример http://k-code.ru/?q=node/20

Всего записей: 1 | Зарегистр. 21-12-2011 | Отправлено: 11:47 21-12-2011
Zemond

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Всем привет!
 
У меня проблема с модулем Apache proxy_wstunnel_module на CentOS.
 
CentOS release 6.9 (Final)
Server version: Apache/2.4.12 (Unix)
 
Мне нужно установить proxy_wstunnel_module я делаю по инструкции http://stackmirror.cn/page/s0ui2n9ay1bt  
1) Скачиваю модуль с гитхаба https://github.com/apache/httpd/tree/trunk/modules/proxy
2) Компилирую пакет apxs -i -a -c mod_proxy_tunnel.c  
и на выходе получаю кучу ошибок:
 

Код:
mod_proxy_tunnel.c: In function 'proxy_wstunnel_pump':
mod_proxy_tunnel.c:91: warning: implicit declaration of function 'ap_proxy_transfer_between_connections'
mod_proxy_tunnel.c: In function 'proxy_wstunnel_finish':
mod_proxy_tunnel.c:163: warning: implicit declaration of function 'ap_mpm_resume_suspended'
mod_proxy_tunnel.c: In function 'proxy_wstunnel_callback':
mod_proxy_tunnel.c:207: warning: implicit declaration of function 'ap_mpm_register_poll_callback_timeout'
mod_proxy_tunnel.c: In function 'proxy_wstunnel_canon':
mod_proxy_tunnel.c:235: warning: implicit declaration of function 'ap_cstr_casecmpn'
mod_proxy_tunnel.c: In function 'proxy_wstunnel_request':
mod_proxy_tunnel.c:317: error: 'proxy_worker_shared' has no member named 'upgrade'
mod_proxy_tunnel.c:317: error: 'proxy_worker_shared' has no member named 'upgrade'
mod_proxy_tunnel.c:330: warning: implicit declaration of function 'ap_cstr_casecmp'
mod_proxy_tunnel.c: In function 'proxy_wstunnel_handler':
mod_proxy_tunnel.c:463: error: 'proxy_worker_shared' has no member named 'upgrade'
mod_proxy_tunnel.c:463: error: 'proxy_worker_shared' has no member named 'upgrade'
mod_proxy_tunnel.c:521: warning: implicit declaration of function 'ap_proxy_connection_create_ex'
mod_proxy_tunnel.c: In function 'create_proxyws_dir_config':
mod_proxy_tunnel.c:547: error: 'AP_MPMQ_CAN_POLL' undeclared (first use in this function)
mod_proxy_tunnel.c:547: error: (Each undeclared identifier is reported only once
mod_proxy_tunnel.c:547: error: for each function it appears in.)
apxs:Error: Command failed with rc=65536

 
Качаю дополнительные файлы с гита ap_mpm.h и mod_proxy.h
 
Компилирую еще раз:
 

Код:
apxs -i -a -c mod_proxy_tunnel.c
/usr/local/apache/build/libtool --silent --mode=compile gcc -std=gnu99 -prefer-pic -m64 -fPIC -DPIC  -DLINUX -D_REENTRANT -D_GNU_SOURCE -pthread -I/usr/local/apache/include  -I/usr/local/apache/include   -I/usr/local/apache/include   -c -o mod_proxy_tunnel.lo mod_proxy_tunnel.c && touch mod_proxy_tunnel.slo
mod_proxy_tunnel.c: In function 'proxy_wstunnel_canon':
mod_proxy_tunnel.c:235: warning: implicit declaration of function 'ap_cstr_casecmpn'
mod_proxy_tunnel.c: In function 'proxy_wstunnel_request':
mod_proxy_tunnel.c:330: warning: implicit declaration of function 'ap_cstr_casecmp'
/usr/local/apache/build/libtool --silent --mode=link gcc -std=gnu99 -L/usr/lib64   -o mod_proxy_tunnel.la  -rpath /usr/local/apache/modules -module -avoid-version    mod_proxy_tunnel.lo
/usr/local/apache/build/instdso.sh SH_LIBTOOL='/usr/local/apache/build/libtool' mod_proxy_tunnel.la /usr/local/apache/modules
/usr/local/apache/build/libtool --mode=install install mod_proxy_tunnel.la /usr/local/apache/modules/
libtool: install: install .libs/mod_proxy_tunnel.so /usr/local/apache/modules/mod_proxy_tunnel.so
libtool: install: install .libs/mod_proxy_tunnel.lai /usr/local/apache/modules/mod_proxy_tunnel.la
libtool: install: install .libs/mod_proxy_tunnel.a /usr/local/apache/modules/mod_proxy_tunnel.a
libtool: install: chmod 644 /usr/local/apache/modules/mod_proxy_tunnel.a
libtool: install: ranlib /usr/local/apache/modules/mod_proxy_tunnel.a
libtool: finish: PATH="/usr/local/jdk/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/opt/cpanel/composer/bin:/usr/local/easy/bin:/usr/local/bin:/usr/X11R6/bin:/root/bin:/sbin" ldconfig -n /usr/local/apache/modules
----------------------------------------------------------------------
Libraries have been installed in:
   /usr/local/apache/modules
 
If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the `-LLIBDIR'
flag during linking and do at least one of the following:
   - add LIBDIR to the `LD_LIBRARY_PATH' environment variable
     during execution
   - add LIBDIR to the `LD_RUN_PATH' environment variable
     during linking
   - use the `-Wl,-rpath -Wl,LIBDIR' linker flag
   - have your system administrator add LIBDIR to `/etc/ld.so.conf'
 
See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
----------------------------------------------------------------------
chmod 755 /usr/local/apache/modules/mod_proxy_tunnel.so
[activating module `proxy_wstunnel' in /usr/local/apache/conf/httpd.conf]

 
Ошибок, кроме одного варнинга нету, файл *.so сделался и прописался в httpd.conf
 
3) Проверяю какие модули подключены и получаю ошибку:
 
 

Код:
httpd -M
httpd: Syntax error on line 35 of /usr/local/apache/conf/httpd.conf: Cannot load modules/mod_proxy_tunnel.so into server: /usr/local/apache/modules/mod_proxy_tunnel.so: undefined symbol: ap_mpm_register_poll_callback_timeout

 
 
Как решить проблему?

Всего записей: 2 | Зарегистр. 13-03-2008 | Отправлено: 13:14 01-08-2017
vlary



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Zemond
Цитата:
Как решить проблему?  
Поставить Nginx и не мучиться. Либо на форум разрабов апача.


----------
Заслуженный SCOтовод, почетный SUNтехник и любитель Кошек

Всего записей: 17280 | Зарегистр. 13-06-2007 | Отправлено: 16:47 01-08-2017
Zemond

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Как решить проблему?
Поставить Nginx и не мучиться. Либо на форум разрабов апача.  

 
Решил проблему. Оказалось что пытался собрать пакет не от той ветки апача.  
Нашел мою ветку 2.4.12, скачал файлы на сервер и пакет собрался без проблем.

Всего записей: 2 | Зарегистр. 13-03-2008 | Отправлено: 08:06 03-08-2017
blazer05

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здравствуйте.
Нужна помощь.
У меня есть один статический ip на нем висят несколько сайтов к примеру site1.ru и site2.ru, машина стоит за роутером и для нее открыть порт 80 на локальный адрес 192.168.1.2 - все прекрасно работает.
Вопрос
как сделать чтоб site2.ru работал на второй машине к примеру у нее будет локальный ip 192.168.1.4 ?
В общем нужно разделить сайты на несколько машин при этом один статический ip .

Всего записей: 16 | Зарегистр. 09-03-2012 | Отправлено: 16:46 13-10-2017
Paromshick



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
blazer05

Цитата:
Поставить Nginx и не мучиться


Раскидывать один внешний адрес-порт на разные внутренние адреса-ip в зависимости от http запроса - прямое дело реверс прокси.

----------
Скучно

Всего записей: 3019 | Зарегистр. 12-04-2013 | Отправлено: 17:03 13-10-2017
blazer05

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
не nginx на этой машине не катит т.к. там сервак под виндой и все настроено.  
Правильно это будет?
Если я на роутере открываю порт 81 на 80 для машины 192.168.1.4, устанавливаю там апач и в конфиге прописываю нечто такое
 
<VirtualHost *:81>
    DocumentRoot "D:/OpenServer/domains/site2"
    ServerName site2.ru
    ServerAlias www.site2.ru
    ServerAdmin site2@mail.ru
    DirectoryIndex index.php index.html
    
        Alias /payoplata "D:/OpenServer/domains/site2/site2"
            Alias /static "D:/OpenServer/domains/site2/static"
            Alias /media "D:/OpenServer/domains/site2/media"
            <Directory "D:/OpenServer/domains/site2/static">
         
        AllowOverride All
        Order deny,allow
        Require all granted
</Directory>
WSGIScriptAlias / "D:/OpenServer/domains/site2/mod.wsgi"
    </VirtualHost>
 
а на машине 192.168.1.2 в конфиге этого сайта, как мне нужно прокинуть путь на вторую машину?
 
<VirtualHost *:80>
    DocumentRoot "D:/OpenServer/domains/site2"
    ServerName site2.ru
    ServerAlias www.site2.ru
    ServerAdmin site2@mail.ru
    DirectoryIndex index.php index.html
    
        Alias /payoplata "D:/OpenServer/domains/site2/site2"
            Alias /static "D:/OpenServer/domains/site2/static"
            Alias /media "D:/OpenServer/domains/site2/media"
            <Directory "D:/OpenServer/domains/site2/static">
         
        AllowOverride All
        Order deny,allow
        Require all granted
</Directory>
WSGIScriptAlias / "D:/OpenServer/domains/site2/mod.wsgi"
    </VirtualHost>
 
или я вообще все не так понял???

Всего записей: 16 | Зарегистр. 09-03-2012 | Отправлено: 18:03 13-10-2017
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
blazer05

Цитата:
или я вообще все не так понял???

зачем 81?
 

Цитата:
не nginx на этой машине не катит т.к. там сервак под виндой

nginx и под виндой работает
 
поднимаете на одном апаче оба хоста (на 192.168.1.2), но конфиг для нужного будет типа такого

Цитата:
<VirtualHost *:80>
    ServerName site2
 
    ErrorLog "var/log/site2_error_log"
    CustomLog "var/log/site2_access_log" common
 
    ProxyRequests Off
    ProxyPreserveHost On
    <Proxy *>
        Order deny,allow
        Allow from all
    </Proxy>
    ProxyPass / http://192.168.1.4
    ProxyPassReverse / http://192.168.1.4
</VirtualHost>

то есть все забросы к нему будут перекинуты на 1.4
не тестировал, для идеи

Всего записей: 15117 | Зарегистр. 20-09-2014 | Отправлено: 20:52 13-10-2017 | Исправлено: Mavrikii, 20:53 13-10-2017
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2

Компьютерный форум Ru.Board » Компьютеры » В помощь системному администратору » Apache как прокси сервер (mod_proxy)


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru