LinuxForum.Fans
Тема

Настройка нескольких виртуальных хостов apache2 на разные ip адреса

Автор: i_love_linux 6 сообщений 809 просмотров
05.01.2018 16:53 · отредактировано #427290

Приветствую обитателей форума.

Есть на сервере два пользователя.
У каждого из них в домашней папке есть структура каталогов /home/user/www/public_html
Чтобы каждый из пользователей мог делать свои веб приложения.

80-й порт на сервере открыт только внутри VPN подключения, то есть веб сервер находится по адресу 10.8.0.1:80
Отсюда вопрос, можно ли как то настроить виртуальный хост второго пользователя таким образом чтобы доступ к его папке public_html был по адресу скажем 10.8.0.8?
Или нужно настраивать сам apache на работу с этим адресом?

Подскажите пожалуйста :)

05.01.2018 17:36 #427292

i_love_linux, до вечера подождёт? Я могу скопировать часть конфигов с рабочего сервера, убрав имена доменов и немного изменив IP. Там присвоено 3 IP-адреса, висит более десяти сайтов. 3 адреса для SSL.

05.01.2018 18:44 #427293
"Rizado" написал:
до вечера подождёт?

Да, спасибо большое *YAHOO*
Добавлено: 05.01.2018 18:44:00

Прошу прощения за ложную тревогу, вроде как настроил уже ))))

Создал два виртуальных хоста со следующим содержимым:

"first"

<VirtualHost *:80>
ServerName first_user
ServerAdmin webmaster@localhost
DocumentRoot /home/first_user/www/public_html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
&quot;second&quot;

<VirtualHost *:80>
ServerName second_user
ServerAdmin webmaster@localhost
DocumentRoot /home/second_user/www/public_html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Потом в файле конфига apache2 /etc/apache2/apache2.conf прописал:

&quot;apache2.conf&quot;

<Directory /home/first_user/www/public_html/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>

<Directory /home/second_user/www/public_html/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>

Затем в файле /etc/hosts прописал:

&quot;hosts&quot;

10.8.0.1 first_user
10.8.0.1 second_user

На своём компе тоже подправил файл hosts, там прописал:

&quot;hosts&quot;

10.8.0.1 first_user
10.8.0.1 second_user

Теперь если я ввожу в браузере http://first_user то попадаю в папку /home/first_user/www/public_html, а если ввожу http://second_user то попадаю в папку /home/second_user/www/public_html.

Именно то что мне нужно ))))
Возможно кому то тоже пригодится :)

05.01.2018 19:42 #427294

В общем, смотрите:
/etc/network/interfaces:

Показать
text
# This configuration file is auto-generated.
# WARNING: Do not edit this file, otherwise your changes will be lost.
# Please edit template /etc/network/interfaces.template instead.
auto lo
iface lo inet loopback
# Auto generated venet0 interfaces
auto venet0
iface venet0 inet static
        address 127.0.0.1
        netmask 255.255.255.255
        broadcast 0.0.0.0
iface venet0 inet6 static
        address ::2
        netmask 128
        up ip -6 r a default dev venet0
auto venet0:0
iface venet0:0 inet static
        address %LOCAL_IP%
        netmask 255.0.0.0
auto eth1
iface eth1 inet static
        address %EXTERNAL_IP_1%
        netmask 255.255.254.0
        up ip route add default via %GATEWAY_IP%

auto eth1:0 iface eth1:0 inet static address %EXTERNAL_IP_2% netmask 255.255.255.0

auto eth1:2 iface eth1:2 inet static address %EXTERNAL_IP_3% netmask 255.255.255.0

И один пример файла виртуального хоста из /etc/apache2/sites-available:

Показать
text
<VirtualHost %EXTERNAL_IP_1%:80>
        # The ServerName directive sets the request scheme, hostname and port that
        # the server uses to identify itself. This is used when creating
        # redirection URLs. In the context of virtual hosts, the ServerName
        # specifies what hostname must appear in the request's Host: header to
        # match this virtual host. For the default virtual host (this file) this
        # value is not decisive as it is used as a last resort host regardless.
        # However, you must set it for any further virtual host explicitly.
        # ServerName www.example.com

ServerName site1.ru ServerAlias www.site1.ru

ServerAdmin webmaster@localhost DocumentRoot /var/www/site1.ru

# Available loglevels: trace8, ..., trace1, debug, info, notice, warn, # error, crit, alert, emerg. # It is also possible to configure the loglevel for particular # modules, e.g. #LogLevel info ssl:warn

ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined

# For most configuration files from conf-available/, which are # enabled or disabled at a global level, it is possible to # include a line for only one particular virtual host. For example the # following line enables the CGI configuration for this host only # after it has been globally disabled with a2disconf. #Include conf-available/serve-cgi-bin.conf <Directory /var/www/site1.ru> Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all </Directory> </VirtualHost>

Это всё. Никаких правок файлов hosts не надо.

P.S. Зачем править свой файл? Вы же можете прописать IP в качестве алиаса или даже имени сервера и напрямую открывать по нему.

06.01.2018 14:16 #427297

i_love_linux, эм так на сервере один ip или все же два 10.8.0.1 и 10.8.0.8?
Ибо если два то Rizado дело говорит. А если один то твоя конфигурация совершенно верна. *SCRATCH*

15.01.2018 13:25 #427384

Rizado, Спасибо за инфу :)
Я настроил так как выше написал, работает и ладно :[
Добавлено: 15.01.2018 13:25:58

"lone_wolf" написал:
эм так на сервере один ip или все же два 10.8.0.1 и 10.8.0.8?

Один 10.8.0.1

Войдите или зарегистрируйтесь, чтобы ответить.