LINUX.ORG.RU

Не не корректно работает сайт по белому ip.

 , , ,


0

1

Добрый день. Настроил на домашнем сервере wiki с ip 192.168.0.100 . И все прекрасно работает. Но я решил сделать доступ к wiki из вне по белому ip, который у меня имеется. Сделал на роутере проброс порта 80 на мой локальный ip сервера и тут появилась проблема.

Очень долго грузится страница wiki, при чем после загрузки едет верстка сайта. Более того, мой белый ip, например 120.43.34.13. И я ввожу в браузере соответственно http://120.43.34.13/index.php, однако после долго ожидания и загрузки страницы, я вижу, что в браузере уже адрес http://192.168.0.100/index.php. После этого любая гипперссылка на странице не открывается с сообщением, что такая страница не найдена. Ну это логично, т..к любая гипперссылка открывается с адресом 192.168.0.100, а не 120.43.34.13. Ну вот собственно симптомы проблемы. И так, в чем может быть причина, и как ее решать. Хотя бы направление куда копать подскажите.



Последнее исправление: abdus (всего исправлений: 1)

виртуалхост правильно настрой. Должно быть не 192.168.0.100:80 а *:80

FFSinit ★★
()

а vhost как настроен? конфиг апача (можно только кусок про вхост) в студию.

и надо было постить в раздел admin, наверное.

xtraeft ★★☆☆
()

Медиавики, если не ошибаюсь, не умеет работать с нескольких разных адресов/доменных имён.

sin_a ★★★★★
()
Ответ на: комментарий от xtraeft

Я так понимаю, что vhost нужен для работы с доменным именем. У меня нет купленного имени. Я пытаюсь добиться, чтоб просто по белому ip заходя на сайт открывалась wiki.

vhost я не трогал, так что там все закомментировано . Я настроил вики по ману и больше ничего не менял в том числе конфиги апача.

abdus
() автор топика
Ответ на: комментарий от ziemin

HTTP/1.1 200 OK
Date: Sat, 14 Sep 2013 17:09:03 GMT
Server: Apache/2.2.15 (CentOS)
X-Powered-By: PHP/5.3.3
X-Content-Type-Options: nosniff
Content-language: ru
X-Frame-Options: DENY
Vary: Accept-Encoding,Cookie
Expires: Thu, 01 Jan 1970 00:00:00 GMT
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Connection: close
Content-Type: text/html; charset=UTF-8

abdus
() автор топика
Ответ на: комментарий от abdus

Значит у тебя жестко прописан адрес в ссылках внутри тела. Я уж было подумал, что сервер отдаёт 192,168,*,* в качестве базового.

Внутри ссылок нужно писать так: «/forum/general/9583092?lastmod=1379178517486#comment-9584030».

ziemin ★★
()
Ответ на: комментарий от ziemin

если у него вёрстка едет, значит что стили тоже отдаются с IP. Может в настройках движка где-то указыается адрес...

FFSinit ★★
()
Ответ на: комментарий от FFSinit

Верно, говорите. Т.к. в браузере идет подмена белого ip на тот что за nat. Я правильно понял, что апач выходит ни при чем?

abdus
() автор топика
Ответ на: комментарий от abdus

в исходном коде страницы в урлах(и ссылках на стили тоже) не должен быть указан домен или IP хоста, если указан то виновна цмс

FFSinit ★★
()
Последнее исправление: FFSinit (всего исправлений: 1)
Ответ на: комментарий от ziemin

Провел эксперимент. Запустил виртуалку в моей локальной сети (192.168.0.50) под windows 7. На ней при заходе на мою вики по локальному адресу (192.168.0.100) тоже поехала верстка, однако при добавлении dns записи в hosts, и входе после этого на мою вики - верстка стала нормальной. Т.е. по ip адресу верстка едет, по любому dns заданному в hosts все ок.

НО! если коннектиться из вне по белому ip, то неважно есть или нет dns имени. Верстка все равно едет

abdus
() автор топика
Ответ на: комментарий от abdus

Ты же борешься с последствиями, а не с причиной. Во-первых покажи куски html и css. Во-вторых расскажи как ты пробрасываешь порт.

ziemin ★★
()
Ответ на: комментарий от ziemin

На роутере указываю внещний порт который пробрасываю. В моем случае это 22756 и направляю его на 80-й порт локальной машины. Какие куски html нужны? Я не плохо знаю веб, если туплю где-то, сори.

abdus
() автор топика
Ответ на: комментарий от xtraeft

Я настраиваю вики не для себя и не хочу тратиться на покупку домена. Моя цель, чтоб был нормальный доступ по белому ip. Прописывании dns в hosts тоже не выход, т.к. доступ нужен с любой машины, планшета и т.д.

abdus
() автор топика
Ответ на: комментарий от abdus

Какие куски html нужны? Я не плохо знаю веб, если туплю где-то, сори.

Где есть какие-нибудь ссылки. Для css: фоновое изображение, включаемые файлы и т.д. Для html покажи хотя бы <head> ... </head>. Или даже кусок кода, который его формирует. А если проект не шибко секретный давай ссылку.

ziemin ★★
()
Ответ на: комментарий от abdus

и не хочу тратиться на покупку домена.

он бесплатный

xtraeft ★★☆☆
()
Ответ на: комментарий от abdus
<link rel="stylesheet" href="http://wapyzel.net/load.php?...>

Сразу бросается в глаза. Этот урл не открывается и тупит. Если ты упёр у кого-то стиль, то скопируй его к себе.

ziemin ★★
()
Ответ на: комментарий от ziemin

вот до чего доводит бездумная «настройка» по мануалу.

FFSinit ★★
()
Ответ на: комментарий от ziemin

с этим стилем какая-то бредятина выходит. wapyzel.net - это была запись dns в hosts для этого ip. До этого там ip адрес был. Выглядит сейчас так: wiki берет url для стиля из адреса, который передает клиент. Соответственно если у клиента стиль указан в виде белого ip, то он его берет, не находит стиль и кидает по умолчанию. Есть идеи как это исправить? Надо чтоб стиль брался с локального компа, а не с белого ip.

abdus
() автор топика
Ответ на: комментарий от abdus

Ты лучше кусок кода приведи. Тут много людей, которые сразу укажут тебе на косяк, но очень мало специалистов по wiki. Я, к примеру даже и не лез в код.

Есть идеи как это исправить? Надо чтоб стиль брался с локального компа, а не с белого ip.

Тебе как раз нужно решить обратную задачу: чтобы твой стиль (в данном случае, ибо я подозреваю, что это только первая проблема) был доступен отовсюду. В первую очередь надо избавлятся от абсолютных ссылок.

ziemin ★★
()
Ответ на: комментарий от ziemin

я нашел причину. Есть конфиг файл mediawiki. LocalSettings.php

<?php
if ( !defined( 'MEDIAWIKI' ) ) {
        exit;
}
$wgSitename = "WapYzel";
$wgScriptPath = "";
$wgScriptExtension = ".php";
$wgServer = "192.168.0.100";
$wgStylePath = "$wgScriptPath/skins";
$wgLogo             = "$wgStylePath/common/images/wiki.png";
$wgEmailAuthentication = true;
$wgDBtype = "mysql";
$wgDBserver = "localhost";
$wgDBname = "wikidatabase";
$wgDBuser = "wiki";
$wgDBpassword = "********";
$wgDBprefix = "";
$wgDBTableOptions = "ENGINE=InnoDB, DEFAULT CHARSET=utf8";
$wgDBmysql5 = false;
$wgMainCacheType = CACHE_NONE;
$wgMemCachedServers = array();
$wgEnableUploads = true;
$wgUseInstantCommons = false;
$wgShellLocale = "en_US.utf8";
$wgLanguageCode = "ru";
$wgDefaultSkin = "vector";
$wgRightsUrl = "";
$wgRightsText = "";
$wgRightsIcon = "";
$wgDiff3 = "/usr/bin/diff3";
$wgResourceLoaderMaxQueryLength = -1;
$wgGroupPermissions['*']['createaccount'] = false;
$wgGroupPermissions['*']['edit'] = false;
$wgGroupPermissions['*']['read'] = false;

В нем есть параметр отвечающий за путь к стилям $wgServer=192.168.0.100" Сейчас я его исправил на адрес в сети до этого он был wapyzel.net. Если бы эта вики была на белом ip адресе, то путь был бы корректным, но т.к. вики находится за NAT, а обращения идут по белому ip, то соответственно нужный путь не находится, т.к. его не существует. По этому же причине внутри локальной сети все работает. Теперь надо придумать, как исправить этот параметр, то и за NAT он работал корректно. Хотя, возможно что это нельзя сделать, т.к. движок wiki не был рассчитан на проброс портов.

abdus
() автор топика
Ответ на: комментарий от abdus

вики находится за NAT, а обращения идут по белому ip

Давай вернёмся к вопросу о том, как ты настроил NAT? Давай модель роутера.

ziemin ★★
()
Ответ на: комментарий от ziemin

asus RT-N56U. Ничего особенного. На этом роутере настроен dhcp 192.168.0.1\24 Соответственно у wiki сервера 192.168.0.100

abdus
() автор топика
Ответ на: комментарий от abdus

попробуй установить переменную

$wgServer
в
""

Если не прокатит, тогда тебе придется там прописать домен, и локально в hosts прописать IP за натом.

FFSinit ★★
()
Последнее исправление: FFSinit (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.