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

Локальные DNS для тестирования сайтов с мобильных устройств

Понятия не имею, с чего начать, заранее извините, если эта тема уже обсуждалась.

Обычно я разрабатываю веб-сайты, используя свой ноутбук в качестве сервера разработки, и недавно мне нужно было протестировать веб-сайт с помощью различных мобильных устройств, которые могут подключаться через Wi-Fi. Не имея реальной точки доступа, я настроил одноранговую сеть с помощью беспроводной карты своего ноутбука, и устройства могут правильно просматривать Интернет и получать доступ к веб-серверу ноутбука. Настройка выглядит следующим образом:

Теперь, если я открываю 192.168.1.32 или 192.168.1.64 с мобильных устройств, я правильно получаю хост по умолчанию для моей конфигурации Apache. Однако я обычно работаю с виртуальными хостами по многим практическим причинам, одна из которых - своеобразная реализация мультисайтов в Drupal. Для тех, кто не знает, как это работает, Drupal берет имя хоста запроса и ищет на своих сайтах / подкаталогах соответствующий файл конфигурации. Так, например, предположим, что я запрашиваю www.example.com, тогда Drupal будет искать файл конфигурации в следующих каталогах:

sites/www.example.com/
sites/example.com/
sites/com/
sites/default/

Поэтому я решил использовать следующий стиль виртуальных хостов: если веб-сайт, над которым я работаю, будет доступен через www.example.com, я создаю каталог sites / www.example.com / и создаю виртуальный хост для локального. www.example.com, так что у Drupal не будет проблем с его поиском. Мне сказали, что это неоптимально с точки зрения DNS, поскольку мне пришлось бы создать авторитетную запись для example.com и включить Bind только тогда, когда я должен получить доступ к локальной копии, что странно. Однако, если это единственный путь, по которому я могу следовать, у меня все еще есть некоторые проблемы с настройкой Bind, так как я не смог найти никакого руководства, которое бы четко и дружелюбно для новичков рассказывало мне, как настроить такую ​​запись. С другой стороны, мне было интересно, могу ли я настроить авторитетную запись для local, чтобы я мог получить доступ к www.example.com.local и каким-то образом (я даже не знаю, возможно ли это) Apache для поместите www.example.com вместо www.example.com.local в соответствующую переменную среды.

В любом случае, у меня есть последняя проблема, вроде того: когда я запускаю Bind в режиме отладки с высокой степенью детализации и делаю 192.168.1.32 в качестве основного DNS для устройств, в выходных данных ничего не говорится о запросах, сделанных с устройств на Свяжите, так что я даже не уверен, что это пригодится.

Как видите, я полный новичок в этих вопросах, но мне не терпится учиться, поэтому любая помощь / указатель будет оценена по достоинству.

Еще одно решение - установить небольшой прокси-сервер на вашем настольном компьютере (где вы разрабатываете и размещаете свои сайты с несколькими виртуальными хостами). Например, в Windows вы можете использовать Скрипач. Если вы используете Mac OS X или Linux, вы можете попробовать Чарльз (но это не бесплатно).

В Fiddler вам нужно активировать опцию "Разрешить удаленным компьютерам подключаться" на «Связи» вкладка окна настроек.

Затем вам необходимо настроить мобильное устройство для использования прокси. Это легко сделать в настройках WiFi мобильного устройства.

Я ожидаю, что когда вы создаете свой VirtualHost на своем локальном веб-сервере, вы также редактируете свой hosts файл, чтобы вы могли просматривать свои сайты локально. Теперь вы хотите, чтобы ваше мобильное устройство делало то же самое.

Здесь вступает в силу прокси. Прокси-сервер может читать ваш локальный файл hosts (C:\Windows\System32\drivers\etc\hosts или /etc/hosts), поэтому это означает, что ваше мобильное устройство будет автоматически перенаправлено на ваш локальный веб-сервер.

Что также интересно в этом решении, так это то, что вы можете моделировать медленные сети трафика и четко видеть, что на самом деле загружает ваше мобильное устройство (очень полезно при использовании медиа-запросов и адаптивных изображений).

Я нашел эту статью, в которой очень хорошо объясняется, как это сделать: Тестирование веб-сайта Mac OS X с использованием локального имени хоста на мобильном устройстве

извините за задержку, я наконец нашел решение после множества экспериментов. Прежде всего, вот файл зоны, который я использую для local. домен:

$TTL 1800

@       IN      SOA     local. root.porto.local. (
                        2010061500      ; serial
                        7200            ; refresh
                        3600            ; retry
                        604800          ; expire
                        1800            ; default_ttl
)

                NS      porto.local.

$ORIGIN local.

porto   IN      A       192.168.1.32
www             IN      A       192.168.1.32

к которому я могу добавить строки вроде

www.example.com IN      A       192.168.1.32

что дает возможность запрашивать www.example.com.local, и это одно.

Чтобы принять во внимание странное поведение Drupal, я действительно нашел решение, которое не мешает мне работать с настоящим удаленным www.example.com во время работы с локальной копией, за исключением того, что мне пришлось установить зону для локальной .www.example.com и строка хоста для www, что приводит к странному и длинному www.local.www.example.com ... откровенно говоря, это слишком много, чтобы сохранить мое психическое здоровье. Я пойду за местным. way и s / .local // дамп базы данных, который я собираюсь развернуть на рабочем сервере.

Спасибо всем, кто ответил.

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