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).
Нет способа сделать именно то, что вы просите. Единственным способом было бы настроить IIS - для виртуальных доменов, обслуживаемых IIS - для пересылки в Apache через порт 81. При такой конфигурации клиент не будет знать, что его запросы проходят через IIS на пути к Apache. Немного менее эффективно, но это решило бы ваши потребности.
Ты не можешь
Задача вашего веб- клиента - указывать порт, и пока вы не укажете этот порт, он даже не достигнет Apache.
Что вы могли бы сделать, это чтобы IIS также прослушивал те же виртуальные хосты HTTP/1.1, а затем организовывал для него выдачу 302 Moved
перенаправить, чтобы отправить браузер на правильный номер порта.
В качестве альтернативы запустите второй IP-адрес на своем компьютере и привяжите IIS к исходному IP-адресу, а Apache - ко второму. Таким образом, вам не нужно использовать разные порты вообще.