Доступ к веб-сайту по VM

Я пытаюсь использовать VM, чтобы позволить мне и некоторым другим людям в компании к изменениям тест-драйва в хранилище Magento. VM находится вне моего контроля (главным образом) и размещается на поле Windows Server на нашей интранет. Я не знаю детали версии или фактическую используемую VM, но я могу, вероятно, получить эту информацию в случае необходимости. Я создал VM Ubuntu, установил Magento (v1.8). Я создал резервную копию из своего веб-магазина и восстановил к этому VM. Все это работает (достаточно хороший для того, что я делаю), если я остаюсь в VM.

Проблема состоит в том, что я не могу получить доступ к хранилищу, размещенному на VM снаружи VM.

Местоположение /var/www содержит апачский index.html по умолчанию. Хранилище расположено в .../var/www/magento

Если я просто указываю на браузер (снаружи VM) к IP-адресу VM, я получаю index.html апача по умолчанию. Если бы я изучаю апачский access.log, я вижу нормальные сообщения, которые Вы ожидали бы видеть.Отлично! Если я указываю на браузер на "/magento", я получаю веб-страницу значения по умолчанию IIS хостов VM! Апачский журнал доступа показывает, что возвратил некоторое перенаправление (301, 302) коды ошибок (я не очень знаком с этим).

О, и я действительно судил движущегося апача DocumentRoot кому: /var/www/magento и получил хост других проблем, таким образом, я отложил его.

Если это - проблема с хостом VM, можно ли дать мне подсказки, таким образом, я мог вовлечь надлежащих людей? Что я делаю неправильно?

apache2ctl -S вывод (замаскированные имена серверов):

VirtualHost configuration:
wildcard NameVirtualHosts and _default_ servers:
*:80                   is a NameVirtualHost
         default server example.com (/etc/apache2/sites-enabled/000-default:1)
         port 80 namevhost example.com (/etc/apache2/sites-enabled/000-default:1)

Вывод cat /proc/version:

Linux version 3.2.0-77-generic (buildd@toyol) (gcc version 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5) ) #112-Ubuntu SMP Tue Feb 10 15:22:48 UTC 2015
0
задан 19 March 2015 в 16:05
3 ответа

Ну, я нашел часть ответа.

Это не проблема с сетью. Я использовал анализатор пакетов, чтобы узнать, что перенаправление, выданное apache, содержит адрес «localhost / magento», поэтому мой веб-браузер послушно запросил мою собственную машину Windows, которая вернула страницу с ошибкой IIS, а не IIS хоста виртуальной машины. Одна загадка раскрыта.

Следуя примеру @RVT, я использовал telnet и netcat и смог ПОЛУЧИТЬ отдельные файлы с сайта.

Затем я переустановил новую копию Magento и заметил, что это местоположение по умолчанию, которое Magento устанавливается в папку / var / www / magento. По другим причинам я помню, что установил оригинал в / var / www. Таким образом, было некоторое несоответствие между тем, что Magento хотел для корневой папки, и тем, что я установил. Переустановка (в ... / magento) работает отлично.

Настоящий ответ, вероятно, связан с изменениями в настройках Magento System-> General-> Web-> Unsecure Base URL и также, возможно, настройки Система-> Общие-> Интернет-> Параметр URL . Для полноты картины я обновлю этот ответ.

1
ответ дан 4 December 2019 в 12:28

Поскольку я (пока) не могу комментировать, чтобы задать более ясные вопросы, мне придется опубликовать это в качестве ответа ...

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

Кроме того, было бы полезно просмотреть файлы журнала с сервера apache виртуальной машины ... сообщения 3xx важны (то есть в основном это означает, что виртуальная машина отправляет ваш трафик в другое место - может быть, она сама перенаправляет обратно на сервер виртуальной машины?).

Наконец, вы можете попробовать войти с как с виртуальной машины, так и с внешнего хоста ... вы можете telnet подключиться к порту 80 ... и выполнить команды, похожие на:

GET /magento HTTP/1.0
Hostname: yourhost.domain.com
\r\n

Обратите внимание, что вам следует перевести yourhost.domain.com в имя сервера и используйте двойной перевод строки / возврат каретки после строки имени хоста (т. Е. \ R \ n). Самая важная часть ответного сообщения должна следовать за этим запросом (то есть заголовки Apache). Это должно пролить свет на то, что на самом деле делает сервер.

0
ответ дан 4 December 2019 в 12:28

Я делаю это постоянно для успешной работы на различных комбинациях ОС / VM / Server.

Кажется, ничего плохого в самом Apache нет, так что пока игнорируйте конфигурацию Apache. Вам нужно протестировать весь сетевой путь и подумать о том, как запрос будет перемещаться по сети от вашего рабочего компьютера до процесса Apache. Обычно запрос проходит:

Сотрудники -> Корпоративная Интранет -> Ваша ОС хоста -> Гостевая ОС ВМ -> Гостевая ОС ВМ -> Apache

Разделение сетевой топологии - это первый шаг в решении вашей проблемы, потому что вы должны найти, где запрос блокируется. Вот некоторые инструкции для этого:

  1. Запустив корпоративную интрасеть, на которой сидит ваш Host-компьютер, убедитесь, что ваши коллеги могут физически получить доступ к вашему компьютеру по IP-адресу интрасети. Найдите свой ip-адрес с помощью ipconfig /all (windows) или ifconfig (linux). С другого компьютера используйте ping tool, чтобы узнать, доступен ли ваш компьютер. Не переходите к шагу 2, пока не выясните, как связаться с вашим компьютером с помощью ping.

  2. Я так понимаю, вы можете связаться с http://[guest-ip-адрес], но можете ли вы получить доступ к своему веб-сайту VM по адресу http://127.0.0.1? Если вы не можете, смотрите Шаг 3 для настройки программного обеспечения ВМ, которое запускает ВМ. В противном случае, перейдите к шагу 4.

  3. Программное обеспечение ВМ управляет виртуальным сетевым уровнем между ОС хоста и гостевой ОС. Скорее всего, она будет иметь NAT систему переадресации портов , которая может транслировать TCP-трафик между Host-портом 80 и гостевым портом 80. Однако, порт 80 часто защищен привилегиями супервизора на уровне хостовой операционной системы. Поэтому немного сложно сказать программе VM, чтобы она привязала порт 80, поэтому я рекомендую использовать вместо него порт 8080, так как он незащищен. Настройка переадресации NAT-порта между Host-портом 8080 и Гостевым портом 80. Убедитесь, что вы можете связаться со своим веб-сайтом @ http://127.0.0.1:8080. Возможно, у вас возникнет соблазн настроить Apache на использование порта 8080, но в этом нет необходимости. Программное обеспечение VM под управлением вашей гостевой операционной системы может перевести Host-порт 8080 в гостевой порт 80. Играйте с настройкой сети VM до тех пор, пока не получите http://127.0.0.1:8080.

  4. Убедитесь, что вы можете ударить по вашему веб-серверу с вашей операционной системы хоста @ http://[your-host-ip]:8080. Если нет, проверьте, работает ли у вас брандмауэр на вашей операционной системе. Начните с его временного отключения и повторите проверку. Если вы все еще не можете зайти на сайт, вернитесь к Шагу 3. Если это возможно, снова включите брандмауэр, но убедитесь в том, что ваше программное обеспечение VM исключено, или откройте порт 8080.

  5. Убедитесь в том, что вы можете поразить ваш веб-сервер с вашего сайта с другого компьютера в вашей сети копоративной передачи данных @ http://[your-host-ip]:8080. Если Вы не можете, между Вами и Вашими коллегами может быть корпоративный брандмауэр. Облом. Это также может быть брандмауэр вашей операционной системы, повторите Шаг 4.

К концу этого, ваши коллеги должны быть в состоянии добраться до сайта, работающего на вашей ВМ.

.
2
ответ дан 4 December 2019 в 12:28

Теги

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