Назад | Перейти на главную страницу

Назначьте другой номер порта для одного только веб-сайта на Linux Server с несколькими сайтами на одном IP

У меня 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.
  • В противном случае вы можете использовать обратный прокси-сервер HTTP с 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