Я пытаюсь иметь
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
.
Да, описанная вами конфигурация возможна при наличии следующего: