Apache прослушивает другой порт, но как мне его получить, чтобы мне не приходилось вводить номер порта?

Я использую IIS и Apache HTTP Server параллельно на моей локальной машине, и Apache прослушивает другой порт (порт 81). IIS прослушивает порт 80. Однако я могу получить доступ к своим виртуальным доменам для Apache только в том случае, если я введу этот номер порта. Так, например:

http://virtual.myvirtualdomain.com:81/ http://virtual.myvirtualdomain2.com:81/

Как я могу сделать так, чтобы Apache автоматически знал, что это порт 81, и не заставляет меня вводить номер порта?

РЕДАКТИРОВАТЬ:

Кажется, ответ таков: мне нужно перенаправить IIS в Apache. Кто-нибудь может дать разъяснение о том, как это сделать с IIS 5.1?

8 ответов

Решение

Дело не в том, чтобы сообщить Apache, а в том, чтобы браузер знал, к чему подключаться. Вам либо придется перенаправить IIS на Apache, либо сдаться.

Вы должны ввести номер порта, чтобы ваш клиент знал, куда подключиться. Это не имеет ничего общего с сервером.

В системах Unix вы можете изменить свой /etc/services перечислить 81 как порт для http. Но это фактически отключило бы доступ ко всем веб-сайтам, которые расположены на порте 80.

В качестве альтернативы вы можете настроить свой IIS на порт 80 для локально прокси-запросов для сайтов, которые находятся на Apache. Затем все клиенты запрашивают у IIS страницу, которая устанавливает локальное соединение с портом 81.

Я провел еще несколько исследований, и выяснилось, что вы не можете перенаправить IIS 5.1 на Apache, потому что для этого потребуется несколько веб-сайтов (настройка как перенаправление на виртуальные хосты на Apache через порт 81). Это связано с тем, что IIS 5.1 в Windows XP Pro не может создавать несколько веб-сайтов (запущенных одновременно без использования скриптов). Ну что ж.

Как насчет того, чтобы поменять это? Сделайте так, чтобы Apache прослушивал порт 80, IIS - порт 81 для чего угодно, и у вас есть перенаправление Apache? Apache не должен быть ограничен одним и тем же веб-сайтом для каждой машины, как IIS 5.1.

При вводе URL-адреса браузер должен использовать определенный порт для подключения к сайту. 80 порт по умолчанию, который проверяет сервер. Если вам нужно подключиться к любому другому порту через браузер, вам нужно будет указать номер порта в URL. Не Apache заставляет вас набирать 81, а скорее ваш браузер, потому что он настроен на использование 80 в качестве порта, когда номер порта не указан.

Если вам нужно изменить порт apache на 80 и порт IIS на 81, то вы сможете подключиться к apache без номера порта, но вам потребуется использовать номер порта при использовании веб-сервера IIS.

Не уверен, что идея других заключается в использовании apache для перенаправления в IIS. Мне кажется, что если вы сделаете запись в httpd.conf apache для каталога IIS, то вы будете использовать apache для подключения к каталогу, а не IIS. Вы можете настроить домен и подключить его к apache через порт 81. Это один из способов скрыть номер порта (возможно, это не так. Я никогда не пробовал apache на порте, отличном от 80).

Ты не можешь 81 сообщает вашему браузеру, где искать Apache.

Нет способа сделать именно то, что вы просите. Единственным способом было бы настроить IIS - для виртуальных доменов, обслуживаемых IIS - для пересылки в Apache через порт 81. При такой конфигурации клиент не будет знать, что его запросы проходят через IIS на пути к Apache. Немного менее эффективно, но это решило бы ваши потребности.

Ты не можешь

Задача вашего веб- клиента - указывать порт, и пока вы не укажете этот порт, он даже не достигнет Apache.

Что вы могли бы сделать, это чтобы IIS также прослушивал те же виртуальные хосты HTTP/1.1, а затем организовывал для него выдачу 302 Moved перенаправить, чтобы отправить браузер на правильный номер порта.

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

Другие вопросы по тегам