Я боролся с этим в течение некоторого времени и определенно делаю что-то не так.
У меня есть сервер Apache и сервер JBoss на одной машине. Я хотел бы перенаправить трафик для mydomain.com на JBoss localhost: 8080 / пример. DNS в настоящее время настроен для mydomain.com, и он будет идти прямо к порту 80 при входе в браузер.
У меня вопрос, как мне перенаправить на другой порт, когда определенное доменное имя приходит в Apache (в данном случае, "mydomain.com")?
<VirtualHost ip.addr.is.here>
ProxyPreserveHost On
ProxyRequests Off
ServerName mydomain.com
ProxyPass http://mydomain.com http://localhost:8080/example
ProxyPassReverse http://mydomain.com http://localhost:8080/example
</VirtualHost>
ОБНОВЛЕНО w / Предложения - Все еще не переадресация на порт 8080
<VirtualHost *:80>
ProxyPreserveHost On
ProxyRequests Off
ServerName mydomain.com
ServerAlias www.mydomain.com
ProxyPass http://mydomain.com http://localhost:8080/example
ProxyPassReverse http://mydomain.com http://localhost:8080/example
</VirtualHost>
Ответы:
Вы должны оставить домен
http://example.com
в ProxyPass и ProxyPassReverse и оставить его как/
. Кроме того, вам нужно оставить/
в конце,example/
куда он перенаправляет. Кроме того, у меня были некоторые проблемы с «http://example.com
против»http://www.example.com
- только www работал, пока я не сделал ServerName www.example.com и ServerAlias example.com. Дайте следующий ход.После внесения этих изменений добавьте необходимые модули и перезапустите apache.
источник
/usr/sbin/setsebool -P httpd_can_network_connect 1
Я решил эту проблему с помощью следующего кода:
Я также использовал:
источник
Я хотел сделать именно это, чтобы получить доступ к Jenkins из корневого домена.
Я обнаружил, что должен был отключить сайт по умолчанию, чтобы заставить это работать. Вот именно то, что я сделал.
И вставьте это в файл:
Далее нужно включить / отключить соответствующие сайты:
Надеюсь, это кому-нибудь поможет.
источник
Выяснил это методом проб и ошибок. Если в вашей конфигурации указано ServerName, то ваша директива VirtualHost должна будет сделать то же самое. В следующем примере как awesome.example.com, так и amazing.example.com будут перенаправлены на некоторые локальные службы, работающие через порт 4567.
Я знаю, что это не совсем отвечает на вопрос, но я помещаю его здесь, потому что это лучший результат поиска для переадресации портов Apache. Так что я думаю, это когда-нибудь кому-нибудь поможет.
источник
*:80
вместоexample.com:80
означало, что порт не будет перенаправлен.Вы должны убедиться, что прокси включен на сервере. Вы можете сделать это с помощью следующих команд:
источник
Это может быть старый вопрос, но вот что я сделал:
В файле .conf, загруженном apache:
Объяснение: Прослушайте все запросы к порту 80 локальной машины. Если я запросил "
http://something.com/somethingorother
", перешлите этот запрос на "http://localhost:8080/somethingorother
". Это должно работать для внешнего посетителя, потому что, согласно документам, он отображает удаленный запрос в пространство локального сервера.Я использую Apache 2.4.6-2ubuntu2.2, поэтому я не уверен, как «-2ubuntu2.2» влияет на более широкую применимость этого ответа.
После внесения этих изменений добавьте необходимые модули и перезапустите apache.
источник
Если вам не нужно использовать прокси для JBoss и mydomain.com:8080 может быть «выставлен» миру, то я бы сделал это.
источник
Просто используйте обратный прокси в вашей конфигурации apache (напрямую):
Посмотрите здесь документацию Apache о том, как использовать мод
источник
Мой апач слушает 2 разных порта,
Я использую 80, когда хочу прозрачный URL-адрес и не помещаю порт после URL-адреса, полезного для сервисов Google, которые не разрешают локальный URL-адрес?
Но я использую 8080 для внутренней разработки, где я использую порт в качестве эталона для "среды разработки"
источник
Apache поддерживает виртуальные хосты на основе имен и IP. Похоже, вы используете оба, что, вероятно, не то, что вам нужно.
Я думаю, что вы на самом деле пытаетесь настроить виртуальный хостинг на основе имен , и для этого вам не нужно указывать IP-адрес.
Попробуйте <VirtualHost *: 80> привязать все IP-адреса, если вы действительно не хотите виртуальный хостинг на основе IP . Это может быть в том случае, если сервер имеет несколько IP-адресов, и вы хотите обслуживать разные сайты по разным адресам. Самая распространенная установка - это (я бы предположил) виртуальные хосты на основе имени.
источник
Вам нужно 2 вещи:
ServerAlias www.mydomain.com
в свой конфигProxyPassMatch ^(.*)$ http://localhost:8080/example$1
, чтобы возможно предотвратить mod_dir и конечные слеши от вмешательства.источник
Все это отличное понимание доступа к портам через доменные имена на виртуальных серверах. Не забудьте, однако, включить виртуальные серверы; это может быть закомментировано:
Мы запускаем WSGI с сервером Apache в домене sxxxx.com и сервером golang, работающим на порту 6800. Некоторые брандмауэры, кажется, блокируют доменные имена с портами. Это было наше решение:
источник
Это работает и в ISPConfig. В списке сайтов попасть внутрь домена, перейти на вкладку «Параметры» и добавить следующие строки:;
Затем зайдите на сайт и wolaa :) Это работает протокол HTTPS тоже.
источник
Попробуй это-
источник