Назад | Перейти на главную страницу

Как использовать виртуальный хост Apache с etc / hosts

Я пытаюсь иметь

http://www.mysite.com и http://test.mysite.com

работает на производственном веб-сервере, и теперь я провожу базовые тесты на локальном компьютере, прежде чем передавать данные на производственный веб-сервер.

Если возможно, я хотел бы использовать только виртуальные хосты apache и / etc / hosts.

Я использую директиву Apache ServerAlias ​​внутри virtualHost, например:

<VirtualHost *:80>
    DocumentRoot /path/to/mysite
    ServerName www.mysite.fr
    ServerAlias *.mysite.com
    <Directory /path/to/mysite>
        Options FollowSymLinks MultiViews
        AllowOverride All  
        Order allow,deny 
        Allow from all
    </Directory>
</VirtualHost>

Затем в / etc / hosts я помещаю нужные мне домены:

127.0.0.1 www.mysite.com

127.0.0.1 test.mysite.com

Когда я тестирую это на местном уровне, это работает! (Я могу получить доступ к www.mysite.com и test.mysite.com) Когда я тестирую его на своем удаленном веб-сервере, он просто игнорирует мои настройки, и доступен только www.mysite.com по умолчанию.

Что мне не хватает? Или мой вопрос должен заключаться в том, возможно ли, чтобы оба URL-адреса (www и test) были доступны на веб-сервере, используя только виртуальный хост и файл / etc / hosts?

Как вы пытаетесь получить доступ к test.mysite.com?

Чтобы это работало в Интернете, вам необходимо добавить запись DNS A для test.mysite.com на любом сервере / службе, на которой размещен ваш DNS, или добавить запись для общедоступного IP-адреса вашего удаленного сервера в файл / etc / hosts.

/ etc / hosts предназначен только для локального компьютера.

В вашей локальной настройке в / etc / hosts:

[YOUR REMOTE SERVER'S PUBLIC IP] www.mysite.com test.mysite.com

Однако это будет работать только для ВАС (или для любой системы, в которой вы вручную добавляете запись в соответствующий файл hosts), пока вы не добавите запись A DNS для общедоступного IP-адреса вашего удаленного сервера для test.mysite.com.

Это может помочь вам в тяжелом положении.

Если вы хотите обслуживать несколько доменов со статическими IP-адресами, вам понадобится несколько интерфейсов. Если только вы не используете виртуальные интерфейсы.

<отказ от ответственности: это только пример. Используйте на свой риск. >

Открыто: /etc/network/interfaces

auto eth0
iface eth0 inet dhcp

auto eth0:1
iface eth0:1 inet static
     address 192.168.0.2
     network 192.168.0.0
     netmask 255.255.255.0
     #if you don't have a gateway setup, comment "gateway" line
     gateway 192.168.0.1 
     broadcast 192.168.0.255

auto eth0:2
iface eth0:2 inet static
     address 192.168.0.3
     network 192.168.0.0
     netmask 255.255.255.0
     #if you don't have a gateway setup, comment "gateway" line
     gateway 192.168.0.1
     broadcast 192.168.0.255

ЗАТЕМ:

Перейти к: /etc/hosts

192.168.0.2 www.mysite.com
192.168.0.3 test.mysite.com

Если вы настроили DNS, вы можете использовать те же IP-адреса для сопоставления вашей системы. Надеюсь, это поможет. Свяжитесь со мной, если это не самая ясная информация. Не забудьте использовать разные IP-адреса и доменные имена; НЕ ИСПОЛЬЗУЙТЕ повторно IP-АДРЕС. НЕ ИСПОЛЬЗУЙТЕ ДОМЕННОЕ ИМЯ (ИМЯ) ПОВТОРНО. Это первое единственное совпадение согласно /etc/hosts.

Да, описанная вами конфигурация возможна при наличии следующего:

  • Хост-файлы (или в большинстве случаев DNS) в системах с веб-браузерами
  • Соответствующие конфигурации виртуального хоста на веб-сервере