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

Я выполняю веб-сервер (Ubuntu) в моей локальной домашней сети. Я нахожусь позади маршрутизатора. В WAN у меня есть прямой IP. Если не в моей домашней сети и доступе к моему веб-сайту через WAN прямой IP мой веб-сайт отображается правильно, и все работает.

На моей домашней LAN позади маршрутизатора, получая доступ к моему веб-сайту через прямую WAN получает меня к администраторской странице входа в систему моего маршрутизатора. Это нормально. Но...

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

Как я могу заставить свой веб-сайт отображаться правильно и ссылки для работы при доступе к нему от моей домашней LAN?

1
задан 19.03.2011, 23:43

3 ответа

Проверьте свой CSS и URL JavaScript. Вам, вероятно, придется переключить их с относительно абсолютных ссылок, так как это кажется, что маршрутизация URL отличается на основе того, как Вы пытаетесь получить доступ к сайту.

Самый легкий способ сделать это должно посмотреть на ресурсы, которые браузер пытается загрузить при помощи инструментов Firebug или Developer (Вкладка Ресурсов). Проверьте, что Ваши таблицы стилей загружаются правильно (Необходимо смочь выбрать их и просмотреть содержание). Если они не их, или Вы получаете ошибку на вкладке ресурсов, то проверяете URL, на который смотрит браузер, и удостоверьтесь, что это - правильный URL.

Я был бы готов держать пари, что Ваш браузер ищет таблицы стилей в Вашем IP-адресе LAN, но он должен смотреть на IP-адрес WAN.

4
ответ дан 12.12.2019, 08:14

Ваш маршрутизатор не делает "шпильки NAT" правильно. Много дешевых домашних шлюзов имеет ошибочный код NAT, который не делает это правильно.

Это кажется, что Вы уже получили отображение порта своего маршрутизатора (иначе "перенаправление портов") или демилитаризованная зона (иначе "хост по умолчанию", "хост оплота", и т.д.) набор функций правильно, с тех пор от стороны WAN маршрутизатора при указании на браузер на общедоступный IP-адрес WAN маршрутизатора Вы получаете страницу от своего веб-сервера.

Но если Вы находитесь на своей внутренней сети, когда Вы соединяетесь с общедоступным IP-адресом WAN своего маршрутизатора, необходимо все еще получить страницу веб-сервера, не администраторскую страницу маршрутизатора. Если Ваш маршрутизатор хочет подать свою администраторскую страницу, когда Вы соединяетесь с портом 80 на его NAT частный IP-адрес, это прекрасно. Но не на общедоступном IP-адресе WAN.

То, когда Вы находитесь на клиенте на частной стороне NAT и пытаетесь получить доступ к веб-серверу непосредственно через его NAT частный IP-адрес, это может загрузить первый файл HTML очень хорошо на основе URL как "http://192.168.0.254/", но когда браузер идет для загрузки файла CSS и изображений, это, вероятно, формирует URL как "http://mydomain.com/styles.css", что означает общедоступный IP-адрес WAN маршрутизатора, который из-за ошибочного маршрутизатора означает, что веб-сервер администрирования маршрутизатора прерывает их, запрашивает себя, и это не имеет тех ресурсов, таким образом наполняет повреждения.

1
ответ дан 12.12.2019, 08:14

Вам нужны относительные ссылки, а не абсолютные ссылки. Таким образом вместо чего-то вроде этого в Вашем HTML:

<link rel="stylesheet" type="text/css" href="http://example.com/mysite.css" />
<img src="http://example.com/images/someimage.png" alt="Some Image" />

Вам нужен он для сходства с этим:

<link rel="stylesheet" type="text/css" href="/mysite.css" />
<img src="/images/someimage.png" alt="Some Image" />
1
ответ дан 12.12.2019, 08:14

Теги

Похожие вопросы