LINUX.ORG.RU
ФорумAdmin

Apache за роутером

 ,


0

2

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

Настройки: Внешний статический IP, например - 215.215.215.215
В роутере 80 и 443 порты проброшены на сервер с apache2, имеющий в локалке IP 192.168.1.1, на котором крутятся mysite1.ru и mysite2.ru.

/etc/apache2/ports.conf:

Listen 80
<IfModule ssl_module>
Listen 443
</IfModule>
<IfModule mod_gnutls.c>
Listen 443
</IfModule>


/etc/apache2/sites-enabled/default.conf:

<VirtualHost _default_>
DocumentRoot /var/www/default
...
</VirtualHost>


/etc/apache2/sites-enabled/mysite1.ru.conf:"

<VirtualHost mysite1.ru>
DocumentRoot /var/www/mysite1.ru
DirectoryIndex index.html index.php
ServerName mysite1.ru
...
</VirtualHost>


/etc/apache2/sites-enabled/mysite2.ru.conf:

<VirtualHost mysite2.ru>
DocumentRoot /var/www/mysite2.ru
DirectoryIndex index.html index.php
ServerName mysite2.ru
...
</VirtualHost>

Когда default.conf включен, любое внешнее обращение. что http://215.215.215.215, что http://mysite1.ru, что http://mysite2.ru приводит к отображению index.html из /var/www/default.
Если его выключить, то любое обращение «404-Not found»:

Not Found

The requested URL / was not found on this server.
Apache/2.4.23 (Debian) Server at mysite1.ru (215.215.215.215, mysite2) Port 80

Что только не делал. И в ports.conf прописывал «NameVirtualHost 192.168.1.1», «NameVirtualHost 215.215.215.215», «NameVirtualHost *:80», как перед строкой Listen 80, так и после нее, как с :80 после IP, так и без.
Пробовал вставить вышеуказанные «NameVirtualHost ...» в default.conf перед строкой <VirtualHost _default_>.
Еще раз пересмотрел «Администрирование веб-сервера Apache» Хокинса в части касающейся создания виртуальных хостов.
Безрезультатно.
Понимаю, что решение тривиальное и лежащее на поверхности, но не могу включить домены хоть убей.
Прошу помочь.

Ответ на: комментарий от Neuro75

ssh -D <номер порта> <host>

Далее в фаерфоксе например делаешь socks прокси на локалхост на <номер порта> и можешь ломиться на 192.168.1.1

anonymous ()
Ответ на: комментарий от Serjikss

sudo a2ensite mysite1.ru.conf

делал? после этого апач перезапускал?

Да, конечно. В том то и дело, что решение проблемы лежит на уровне 1 класса и обусловлено тем, что я первый раз это делаю. Я просто где-то нужную строку не дописал, не могу понять где.
Думаю где-то в связке «NameVirtualHost ...», «Listen ...», <VirtualHost ...>

Neuro75 ()
Ответ на: комментарий от Neuro75

сейчас на локале проверил вот с такой конфой все заработало проверь

<VirtualHost *:80>

ServerName mystite1.ru

ServerAdmin webmaster@localhost

DocumentRoot /var/www/mysite1.ru/

ErrorLog ${APACHE_LOG_DIR}/error.log

CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>

Serjikss ()
Ответ на: комментарий от Serjikss

Хм...
С подсказанной конфигурацией:

/etc/apache2/ports.conf:

...
Listen 80
...


/etc/apache2/sites-enabled/000-default.conf:

<VirtualHost _default_>
DocumentRoot /var/www/default
...
</VirtualHost>


/etc/apache2/sites-enabled/mysite1.ru.conf:"

<VirtualHost *:80>
ServerName mysite1.ru
DocumentRoot /var/www/mysite1.ru
DirectoryIndex index.html index.php
...
</VirtualHost>


/etc/apache2/sites-enabled/mysite2.ru.conf:

<VirtualHost *:80>
ServerName mysite2.ru
DocumentRoot /var/www/mysite2.ru
DirectoryIndex index.html index.php
...
</VirtualHost>


заработало. При обращении http://mysite1.ru работают файлы из /var/www/mysite1.ru
При обращении http://mysite2.ru работают файлы из /var/www/mysite2.ru
Но! При обращении по IP, т.е. http://215.215.215.215 работают файлы тоже из /var/www/mysite1, а не из /var/www/default, что смущает.
Также смущает, что и у mysaite1.ru и у mysite2.ru VirtualHost одинаковые - <VirtualHost *:80>. Так и должно быть?

Neuro75 ()
Ответ на: комментарий от Neuro75

Был неправ.
<VirtualHost _default_> родилось из ранее указанной мною книги Хогинса в процессе попыток разобраться самому.
По умолчанию в Апаче в VirtualHost'e 000-default стояло <VirtualHost *:80>.
Поменял и теперь все работает. Т.е. отдаются файлы из mysite1 и mysite2, а при неявном указании (по IP) выдаются файлы из /var/www/default.
Спасибо большое за помощь.
ПОследний вопрос, исключительно в плане саморазвития: это нормально, что во всех конфигах включенных сайтов одинаково стоит <VirtualHost *:80>, т.е. различаются они получаются только по значению ServerName? Так и должно быть, не грозит какими-либо траблами в дальнейшем?

Neuro75 ()
Ответ на: комментарий от Neuro75

Да это нормально. Слушаются все твои IP адреса по 80 порту. Если надо разнести сайты на разные IP адреса на одном сервере - то указывается явно IP адрес (например: <VirtualHost 192.168.1.1:80> то сайт будет отдаваться только при обращении к этому адресу)

Serjikss ()
Ответ на: комментарий от Neuro75

Да что бы не отдавать 000-default - создай виртуалхост 0000 c пустой страницей или index.html в 000-default сделай пустой, зачем тебе отдавать сведения о твоей системе всем кто по IP забежит.

Serjikss ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.