У меня Linux VPS. Конфигурация Linux CentOS с cPanel Порт по умолчанию: 80
Серверы запущены Apache для PHP (по умолчанию в cPanel) Tomcat 5.5.33
У меня для него выделен только 1 IP. Разместите на нем несколько доменов.
МОЯ ПРОБЛЕМА: Все домены работают на порту: 80, но мне нужен только один из моих доменов для работы через порт: 8080
Я могу получить доступ к своему домену как www.example.com:8080, но мне нужно получить к нему доступ как www.example.com (8080 должен доставить вместо 80 по умолчанию)
Мои ссылки http://httpd.apache.org/docs/2.0/vhosts/examples.html http://library.linode.com/lamp-guides/centos-6
Если я правильно понимаю, вы хотите получить прозрачный доступ к содержимому tomcat на www.example.com:8080, просто зайдя на www.example.com - для этого есть несколько способов:
1) если у вас включена мод-перезапись, попробуйте что-то подобное в своем определении vhost или в файле .htaccess
RewriteEngine on
RewriteCond %{SERVER_PORT} !^8080$
RewriteRule ^(.*) http://%{SERVER_NAME}:8080%{REQUEST_URI}
2) если вы хотите использовать обратный прокси-сервер (требуется, чтобы mod_proxy_http был включен) http://tomcat.apache.org/connectors-doc-archive/jk2/proxy.html
У вас есть две категории опций: перенаправление или обратный прокси (что вы можете сделать в пределах определенного VirtualHost
конфигурации, если вам нужно, чтобы это было только для одного имени хоста).
Перенаправление может быть выполнено с помощью mod_rewrite
(как говорит @O G).
Поскольку сервер, работающий на порту 8080, фактически отличается от сервера Apache HTTPD на порту 80, mod_rewrite
не может перезаписывать URL-адреса внутри (поэтому работает только в режиме перенаправления). Вместо этого вы можете использовать метод обратного прокси:
mod_jk2
(из ссылки @O G) считается "историческим".mod_jk
довольно стабилен, но основан на протоколе AJP, поэтому вам не нужно включать его в конфигурации Tomcat (вероятно, не на порту 8080).mod_proxy_ajp
также довольно стабилен и часто поставляется по умолчанию с Apache HTTPD (в отличие от mod_jk
), по крайней мере, с версией 2.2. Он также использует протокол AJP, поэтому вам также потребуется соответствующим образом настроить Apache Tomcat.mod_proxy_http
(без необходимости в AJP).Я нашел решение из подсказок, данных в предыдущих сообщениях
файл .htaccess
RewriteEngine on
RewriteBase /
RewriteRule ^admin(.*)$ http://example.com/tryAdmin$1 [R,L]
RewriteRule ^(.*)$ http://example.com/try/$1 [R,L]
/usr/local/apache/conf/userdata/std/2/tryord/example.com/extra.conf
ProxyPass /try http://example.com:8080/try
ProxyPassReverse /try http://example.com:8080/try
ProxyPass /tryAdmin http://example.com:8080/tryAdmin
ProxyPassReverse /tryAdmin http://example.com:8080/tryAdmin
Ссылки http://tomcat.apache.org/tomcat-6.0-doc/proxy-howto.html#Apache_2.0_Proxy_Support
Apache - /etc/httpd/conf/httpd.conf Tomcat - /usr/local/jakarta/apache-tomcat-5.5.33/conf/server.xml
Включают
/usr/local/apache/modules/mod_proxy.so