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

как обслуживать несколько доменов с одного компьютера в локальной сети

У меня проблема с обслуживанием моего проекта django в локальной сети. Каждому проекту требуется уникальное доменное имя в файле hosts. В моей локальной сети другие компьютеры не могут видеть проекты.

IP-адрес моего компьютера в сети 192.168.2.2. Файл hosts на моем компьютере выглядит следующим образом:

127.0.0.101      myProject1.local
127.0.0.102      myProject2.local
127.0.0.103      myProject3.local

Я думаю, что мне нужно сделать это так, но это не работает.

192.168.2.101      myProject1.local
192.168.2.102      myProject2.local
192.168.2.103      myProject3.local

Наконец, я нашел решение: он должен настроить DNS-сервер в вашей локальной сети, если у вас есть компьютер с ОС Server Edition, будет легко настроить его DNS-сервер и указать его на IP-адрес вашего проекта. но когда в сети нет компьютера-сервера (например, в домашних сетях), проблема будет заключаться в поиске DNS-сервера, который возьмет на себя ответственность.

Я настрою Apache на Windows 7 или что-нибудь еще для обработки проектов Django с помощью WSGI ...

мой локальный IP 192.168.2.2 и привязываю к своему MAC-АДРЕСУ в настройках роутера.
ВНИМАНИЕ: обязательно сделайте свой IP неизменным, иначе это сделает ваш DNS-сервер и локальную сеть нестабильными.

1. Настройте Apache для обслуживания нескольких доменов:

Первый шаг - настроить Apache для запуска проектов:
ниже будет служить myProject1 на www.myproject1.local и myProject2 на www.myproject2.local

NameVirtualHost *:80

<VirtualHost *:80>
    ServerName www.myProject1.local
    ServerAlias myProject1.local *.myProject1.local 
    ServerAdmin my-email@gmail.com
    DocumentRoot "C:/path/to/myProject1/"
</VirtualHost>

<VirtualHost *:80>
    ServerName www.myProject2.local
    ServerAlias myProject2.local *.myProject2.local 
    ServerAdmin my-email@gmail.com
    DocumentRoot "C:/another/path/to/myProject2/"
</VirtualHost>

...

для получения дополнительной информации посетите: [Поддержка виртуального хоста на основе имени Apache]

2. Обедайте в проектах Django с WSGI:

если вы хотите обслуживать проект PHP, он работает, но для настройки WSGI вам нужно внести небольшие изменения, как показано ниже. Я отношусь к project1 как к проекту django

<VirtualHost *:80>
    ServerName www.myProject1.local
    ServerAlias myProject1.local *.myProject1.local 
    ServerAdmin my-email@gmail.com
    #WSGIDaemonProcess myProject1 processes=2 threads=15 display-name=%{GROUP}
    #WSGIProcessGroup  myProject1
    WSGIScriptAlias / "C:/path/to/myProject1/myproject1.wsgi"
</VirtualHost>

...

Обязательно загрузите: [mod_wsgi.so]

прокомментированные строки WSGIDaemonProcess и WSGIProcessGroup варианты улучшения службы WSGI для получения дополнительной информации посетите: [mod_wsgi Wiki Pages]

3. Установка DNS-сервера

теперь вы должны настроить свой DNS-сервер. В моем случае на моем компьютере не установлен DNS-сервер, поэтому первым делом нужно найти подходящий DNS-сервер для выполнения этой работы.
Я использую [MaraDNS] и настраиваю его, как показано ниже:

mararc файл

ipv4_bind_addresses             = "192.168.2.2"
timestamp_type                  = 2
random_seed_file                = "secret.txt"
hide_disclaimer                 = "YES"
csv2                            = {}
csv2["myproject1.local."]       = "db.default.txt"
csv2["myproject2.local."]       = "db.default.txt"
upstream_servers                = {}
upstream_servers["."]           = "yyy.yyy.yyy.yyy, zzz.zzz.zzz.zzz"

и db.default.txt файл, как показано ниже

%           192.168.2.2 ~
www.%       192.168.2.2 ~

для получения дополнительной информации о посещении maraDNS Веб-сайт MaraDNS

4. Запуск DNS-сервера:

Обед maraDNS Server от

maradns -f mararc

5. Настройки маршрутизатора:

вы можете получить доступ к своим доменам, установив основной DNS-сервер так, чтобы он указывал на 192.168.2.2 для каждого компьютера в вашей локальной сети. но вы также можете настроить DHCP-сервер маршрутизатора на использование вашего IP-адреса в качестве DNS-сервера по умолчанию. ему просто нужен доступ к веб-администрированию маршрутизатора.
поэтому введите свой IP-адрес в качестве DNS-сервера, и работа будет выполнена.

6. Наслаждайтесь трюком:

теперь вы можете обслуживать свои проекты в локальной сети как поддельные домены, не используя: номер порта или IP-адреса. просто войдите myproject1.local в адресной строке любого компьютера в локальной сети или WiFi-устройств и получите нужный результат.
:)

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

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

В-третьих, вам не нужен один IP-адрес на хост. Один IP-адрес может иметь несколько имен хостов. Это либо настроено на сервере имен, либо, если у вас его нет для локальной сети, вы можете использовать псевдонимы в hosts файл:

192.168.0.101   hostname1 hostname2 hostname3

Затем в Apache (или другом веб-сервере, который вы используете) вы используете виртуальные хосты на основе имен.

И последнее замечание о вашей текущей настройке с использованием IP-адресов в диапазоне 127.x.x.x, они всегда считаются локальными для хоста, поэтому попытка подключения другого компьютера через этот диапазон адресов никогда не сработает.