Я пытаюсь перенаправить порт с 80 на 8080 (по умолчанию на tomcat). ниже то, что я добавил в файл httpd.
<VirtualHost www.example.com:80>
ProxyPreserveHost On
ProxyRequests Off
ServerName www.example.com
ServerAlias example.com
ProxyPass / http://localhost:8080/
ProxyPassReverse / http://localhost:8080/
</VirtualHost>
После добавления нет никаких признаков каких-либо изменений. Что-то не так с кодом?
Centos 5.9
apache 2.2
кот 7
whm / cpanel.
ОБНОВИТЬ: Мой целевой домен - www.99rounds.com:80 прямо на: 8080
Обновление 2 После добавил код из ответа и удалил 2 строчки логов. Я получил: Обратите внимание, что в centos есть встроенная поддержка mod_proxy, если я заставлю ее: loadModule ... Это даст мне ошибку, сообщающую, что он встроен.
У меня есть подробный ответ о том, как я настроил обратный прокси Apache здесь.
Взглянув на предоставленную вами конфигурацию:
<VirtualHost www.example.com:80>
ProxyPreserveHost On
ProxyRequests Off
ServerName www.example.com
ServerAlias example.com
ProxyPass / http://localhost:8080/
ProxyPassReverse / http://localhost:8080/
</VirtualHost>
Вместо этого я бы предложил следующее. Я предполагаю некоторые вещи, такие как ErrorLog и CustomLog, но я бы настроил их так. Я считаю, что ключ ServerName
& ServerAlias
в сочетании с <VirtualHost *:80>
:
<VirtualHost *:80>
ServerName www.99rounds.com
ServerAlias 99rounds.com www.99rounds.com
ErrorLog /var/log/apache2/www.99rounds.com.error.log
CustomLog /var/log/apache2/www.99rounds.com.access.log combined
# Settings for Apache Reverse Proxy
<IfModule mod_proxy.c>
# Proxy specific settings
ProxyRequests Off
ProxyPreserveHost On
<Proxy *>
AddDefaultCharset off
Order deny,allow
Allow from all
</Proxy>
ProxyPass / http://localhost:8080/
ProxyPassReverse / http://localhost:8080/
</IfModule>
</VirtualHost>
РЕДАКТИРОВАТЬ: Также убедитесь, что у вас есть mod_proxy
и mod_proxy_http
включен на вашем сервере:
sudo a2enmod proxy
sudo a2enmod proxy_http
Tomcat и другие серверы приложений публикуют порт AJP, который можно использовать для сопоставления запросов от HTTP-сервера. Для этого вам нужно создать такие «рабочие файлы»:
# server.workers.properties
worker.list=tomcat-server
worker.tomcat-server.type=ajp13
worker.tomcat-server.host=localhost
worker.tomcat-server.port=8009
8009 - это значение по умолчанию для порта AJP на сервере Tomcat. Вы можете найти это значение в $ TOMCAT_DIR $ / conf / server.xml. Затем необходимо указать предыдущий файл в файле конфигурации HTTP:
JkWorkersFile /location/of/the/file/server.workers.properties
<VirtualHost www.example.com:80>
ServerName www.example.com
ServerAlias example.com
DocumentRoot /srv/www/
JkMount /* tomcat-server
<Directory />
Options +FollowSymLinks
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
Эта конфигурация будет передавать все запросы от www.example.com:80 на порт AJP 8009, поэтому сервер Tomcat получит эти запросы и обработает их.
В пути, заданном в DocumentRoot, вы должны поместить ссылки для каждого приложения в каталог webapps Tomcat, потому что, если вы этого не сделаете, HTTP-сервер не сможет загружать файлы ресурсов, такие как CSS и JS.