[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Расшарить VirtualHost
Invis1ble
Имеется модем, работающий в режиме роутера. IP динамический.
Зашел через веб-интерфейс в роутер, сделал "проброс" портов в NAT *:
Service Name: Web Server (HTTP)
External Port Start: 80
External Port End: 80
Protocol: TCP
Internal Port Start: 80
Internal Post End: 80
** Server IP Address: 192.168.1.2

Примечания:
* - при добавлении роутер сказал: Since port 80 is used, the Broadband Router
WEB server port will be moved to 8080.
** - адрес машины в локальной сети, на которой крутится apache

Допустим, я хочу расшарить вирт. хост с именем test.
Конфигурация (apache2.2):

/etc/apache2/ports.conf
NameVirtualHost *:80
Listen 80

/etc/apache2/httpd.conf
ServerName localhost

/etc/apache2/sites-available/test.conf (/etc/apache2/sites-enabled/test.conf - ссылка)
<VirtualHost *:80>
DocumentRoot /home/invis1ble/development/php/test/www
ServerAdmin admin@test
ServerName test
ErrorLog /home/invis1ble/development/php/test/error.log
CustomLog /home/invis1ble/development/php/test/access.log common
</VirtualHost>

соответственно в /home/invis1ble/development/php/test/www/ находятся скрипты

На данный момент я могу попасть только по адресу http://test/, т.е. локально. Хотелось бы иметь доступ по ip из-вне.
Вопросы: чего не хватает, что нужно поменять?

PS. dyndns.com не предлагать, домен мне не нужен.



Спустя 3 минуты, 18 секунд (1.05.2012 - 12:48) Семён написал(а):
А что у тебя при такой схеме не работает все равно?

Спустя 4 минуты, 37 секунд (1.05.2012 - 12:52) Invis1ble написал(а):
Семён
не работает, а должно что-ли? Я бы удивился,если бы работало, потому что непонятно, как апач узнает, что я хочу именно test, а не test2 например при запросе url вида http://мой_ip/

забыл добавить про hosts
/etc/hosts
127.0.0.1   test

Спустя 24 минуты, 29 секунд (1.05.2012 - 13:17) Семён написал(а):
А все доперло, ну тогда нужно тут нужно плясать от того какой у тебя роутер и поддерживает ли он у тебя свой внутренний DNS сервер с настройкой маршрутов. Если на роутер поставить DD-WRT прошивку, то достаточно добавить на роутере в файл host, твой маршрут

Спустя 10 минут, 3 секунды (1.05.2012 - 13:27) Семён написал(а):
Есть еще вариант, поднять внутренний DNS сервер, там где стоит веб-сервер и указать его роутеру

Спустя 2 часа, 21 минута, 26 секунд (1.05.2012 - 15:48) Invis1ble написал(а):
Семён
перечитал кучу всего, толком ничего не понял, в голове каша... Можешь разжевать?

Спустя 7 часов, 1 минута, 25 секунд (1.05.2012 - 22:50) bodja написал(а):
Сделайте типа так

NameVirtualHost 192.168.1.2:8080
Listen 8080
ServerName 192.168.1.2

ну и т.д.

Спустя 56 минут, 32 секунды (1.05.2012 - 23:46) Invis1ble написал(а):
bodja
/etc/apache2/sites-available/test.conf
<VirtualHost 192.168.1.2:8080>
DocumentRoot /home/invis1ble/development/php/test/www
ServerAdmin admin@test
ServerName 192.168.1.2
ErrorLog /home/invis1ble/development/php/test/error.log
LogLevel debug
CustomLog /home/invis1ble/development/php/test/access.log common
</VirtualHost>

/etc/apache2/ports.conf
NameVirtualHost 192.168.1.2:8080
Listen 8080

/etc/apache2/httpd.conf
ServerName 192.168.1.2

так? не работает, в логах пусто, при рестарте сервера замечаний нет...

PS. Набираю http://мой_ip:8080/

Спустя 22 минуты, 38 секунд (2.05.2012 - 00:09) Invis1ble написал(а):
в hosts добавил такую строчку
127.0.0.1	192.168.1.2

хз... большую часть наугад делаю :D

Спустя 18 минут, 3 секунды (2.05.2012 - 00:27) bodja написал(а):
1 Поставте сниффер и посмотрите ,что гуляет по сетке,
может вообще не проходит через роутер.
2 Поставте свич до роутера и подключите две машины,попробуйте достучатся для начала по внутренней сетке.
3 Покупаете ящик пива и идете к знакомому админу на душевный разговор. biggrin.gif

Спустя 2 минуты, 7 секунд (2.05.2012 - 00:29) Invis1ble написал(а):
я уже и фаерволл на всякий случай отрубил laugh.gif
ладно, может придумаю че-нибудь еще, спасибо за советы smile.gif

Спустя 5 минут, 12 секунд (2.05.2012 - 00:34) bodja написал(а):
Еще ,уберите всякую хрень в виде антивирусников и фаерволов,так же гляньте брандмауер винды ,они могут позакрывать порты от прослушивания.

Спустя 1 минута, 32 секунды (2.05.2012 - 00:36) Invis1ble написал(а):
Цитата
брандмауер винды

ну в linux'е не думаю что он присутствует smile.gif
насчет фаерволлов - это да, надо без них попробовать. пока что безрезультатно

Спустя 17 минут, 17 секунд (2.05.2012 - 00:53) Семён написал(а):
Блин я правильно понял следующее:
-----
1) У тебя есть роутер (А)
2) У тебя есть компьютер-веб-сервер (Б) использующий DNS роутера (А)
3) У тебя есть компьютер (В) использующий DNS роутера (А)
----
Ты хочешь с компьютера (В) написать в браузере:
http://test/ и попасть на компьютер (Б)
----
Если да то менй настройки hosts именно в роутере, либо подымай в сети свой DNS сервер

Спустя 8 часов, 33 минуты, 38 секунд (2.05.2012 - 09:27) Invis1ble написал(а):
Семён
Цитата
я правильно понял следующее

нет
  • У меня есть роутер A
  • Есть веб-сервер на B (192.168.1.2), на котором есть несколько виртуальных хостов, ко всем из них я имею доступ локально (с того же B ), например http://example или http://test
  • Есть еще один комп (192.168.1.3) - C, но к сути дела это не относится

с B и C можно выйти в интернет через роутер A, при этом "снаружи" ip будет xxx.xxx.xxx.xxx

Я хочу иметь возможность зайти на один из виртуальных хостов (пусть будет test) с любой машины в инете, набрав внешний ip (xxx.xxx.xxx.xxx) в браузере.
Сорри, что коряво объясняю, не силен в этих делах... ))

Спустя 4 часа, 6 минут, 10 секунд (2.05.2012 - 13:33) Семён написал(а):
В чем проблема тогда?
Достаточно сделать Port-Forwarding в роутере на локальный компьютер по 80 порту. Если у тебя уже куплен домен, в DNS менеджере укажи A запись твоего внешнего IP адреса, добавь в виртуальном хосте нужную запись указав ServerName и при желании ServerAlias. Если у тебя денвер - выкинь его и поставь в виртуалке готовый веб-сервер на базе FreeBSD, Debian, Ubuntu

Спустя 22 минуты, 3 секунды (2.05.2012 - 13:55) Invis1ble написал(а):
Семён
Ты помоему читаешь через пост smile.gif
У меня не денвер (под linux он вообще бывает?), а установленная и настроенная вручную связка php5.4 + apache2.2 + mysql 5.5 на Ubuntu 12.04.
Проблема в том, что Port Forwarding не помогает - сделал перенаправление с порта 8080 на роутере на 8080 компа, на котором apache. Конфигурацию сервера я выше приводил для bodja. Пробую зайти по http://xxx.xxx.xxx.xxx:8080 - не работает.
Посмотри конфиги, может я ошибся где-то.

Спустя 4 часа, 7 минут, 11 секунд (2.05.2012 - 18:02) I++ написал(а):
IP на роутере который выдает провайдер "белый" или серый?, а еще если провайдер стрим какойнить, эти удоты лочат первые 1024 порта, чтобы народ не поднимал web-серверы и другие прелести, но IP они выдают "белый".

1. Уточнить какой IP "белый или серый".
2. Использовать следующие:

httpd.conf
Listen 80


vhosts.conf

NameVirtualHost test:80

<VirtualHost test:80>
DocumentRoot "/usr/local/da0/my/test"
ServerName "test"
ServerAlias "test" "www.test"
ErrorLog "/usr/local/da0/errors_logers/test.log"
</VirtualHost>

NameVirtualHost test2:80

<VirtualHost test2:80>
DocumentRoot "/usr/local/da0/my/test2"
ServerName "test2"
ServerAlias "test2" "www.test2"
ErrorLog "/usr/local/da0/errors_logers/test2.log"
</VirtualHost>


Затем на нужной машине которая должна заходить на test и test2 из интернетов в файл hosts (Windows) пишем:

%ИНЕТОВСКИЙ IP РОУТЕРА% test
%ИНЕТОВСКИЙ IP РОУТЕРА% test2


%ИНЕТОВСКИЙ IP РОУТЕРА% www.test
%ИНЕТОВСКИЙ IP РОУТЕРА% www.test2

И все будет арбайтунг, если IP который выдает провайдер не натится т.е белый.

Таким же способом можно прикрепить и реальные домены, в этом случае не потребуется править файл hosts нужно у доменов А записи изменить на IP, но так как он динамический, будут проблемы.

Спустя 1 час, 25 минут, 32 секунды (2.05.2012 - 19:28) alexbel2404 написал(а):
была такая проблема с длинком, настроил через dmz zone

Спустя 16 часов, 6 минут, 27 секунд (3.05.2012 - 11:34) Invis1ble написал(а):
I++
Цитата
1. Уточнить какой IP "белый или серый".

Судя по тому, что набрав в адресной строке свой ip (который например показывается в http://checkip.dyndns.org/) я попадаю на свой роутер, то белый. Или я ошибаюсь?
Цитата
2. Использовать следующие:

использовал. Фаервол отключен, порт форвардинг включен. Не арбайтунг.

Спустя 1 месяц, 16 дней, 4 часа, 30 минут, 45 секунд (19.06.2012 - 16:05) killer8080 написал(а):
Цитата (Invis1ble @ 1.05.2012 - 23:46)
bodja
/etc/apache2/sites-available/test.conf
<VirtualHost 192.168.1.2:8080>
    DocumentRoot /home/invis1ble/development/php/test/www
    ServerAdmin admin@test
    ServerName 192.168.1.2
    ErrorLog /home/invis1ble/development/php/test/error.log
    LogLevel debug
    CustomLog /home/invis1ble/development/php/test/access.log common
</VirtualHost>

/etc/apache2/ports.conf
NameVirtualHost 192.168.1.2:8080
Listen 8080

/etc/apache2/httpd.conf
ServerName 192.168.1.2

так? не работает, в логах пусто, при рестарте сервера замечаний нет...

PS. Набираю http://мой_ip:8080/

В таком виде оно и не будет работать. Потому что в заголовке Host будет внешний (белый) IP роутера, а в вирт хосте указан локальный IP в качестве ServerName. Задача на самом деле решается просто, нужно в дефолтовом конфиге (/etc/apache2/sites-available/default) изменить DocumentRoot на нужную директорию. А на роутере пробросить порт 8080 на 192.168.1.2:80

Спустя 6 минут, 28 секунд (19.06.2012 - 16:11) varvar написал(а):
по моему тут ServerName лишний

Цитата

<VirtualHost 192.168.1.2:8080>
    DocumentRoot /home/invis1ble/development/php/test/www
    ServerAdmin admin@test
    ServerName 192.168.1.2
    ErrorLog /home/invis1ble/development/php/test/error.log
    LogLevel debug
    CustomLog /home/invis1ble/development/php/test/access.log common
</VirtualHost>

Спустя 5 минут, 50 секунд (19.06.2012 - 16:17) Invis1ble написал(а):
killer8080
Спасибо, попозжа попробую

Спустя 14 дней, 7 часов, 17 минут, 21 секунда (3.07.2012 - 23:34) san4o написал(а):
если правильно пробросил 80 порт с роутера на свой внутренний айпи. то поидеи без никаких других плясок с бубном, из вне набрав айпи роутера все будут попадать на дефолтный виртуальный хост твоего веб сервера.


Спустя 59 минут, 6 секунд (4.07.2012 - 00:34) rooor написал(а):
Invis1ble
если с внешки хочешь зайти на хост, то пробрасываешь 80 порт на тот, который слушает апач(8080, если я правильно понял)
а на том компе, с которого хочешь зайти(внешний) в файле hosts пропиши:
внешний_ip_адрес_роутера test.ru

он должен тебя перекинуть именно на test.ru, если в файле напишешь test.ru, а в адресной строке наберёшь www.test.ru - работать не будет


ЗЫ: топик читал по диагонали))


_____________

Профессиональная разработка на заказ

Я на GitHub | второй профиль

Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.