Вопрос: Запуск Apache и Tomcat вместе на разных поддоменах?


Отправил это на ServerFault, но не получил ответа. Надеюсь, мне повезет на сайте Ubuntu.

Я пытаюсь заставить эту работу работать сегодня. У меня есть сервер, который разрешает домен example.com , Это работает Apache2 и Tomcat 6. Требование состоит в том, чтобы направлять запросы на example.com на apache2 и app.example.com в Tomcat. Я знаю, что для этого нужно сделать прокси-сервер VirtualHost. Вот настройки на моем сервере.

/ и т.д. / хосты файл выглядит примерно так

127.0.0.1     localhost localhost.localdomain example.com app.example.com 

У меня есть два файла виртуального хоста для разных доменов в / etc / apache2 / sites-enabled

/etc/apache2/sites-enabled/example.com выглядит так

<VirtualHost *:80>

  # Admin email, Server Name (domain name) and any aliases
  ServerAdmin webmaster@localhost
  ServerName  example.com
  ServerAlias www.example.com

  DocumentRoot /var/www
        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>
        <Directory /var/www/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
        </Directory>

        ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
        <Directory "/usr/lib/cgi-bin">
                AllowOverride None
                Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
                Order allow,deny
                Allow from all
        </Directory>

        ErrorLog /var/log/apache2/error.log

        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel warn

        CustomLog /var/log/apache2/access.log combined

    Alias /doc/ "/usr/share/doc/"
    <Directory "/usr/share/doc/">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128
    </Directory>


</VirtualHost>

/etc/apache2/sites-enabled/app.example.com файл выглядит так

<VirtualHost *:80>
  ServerName  app.example.com
  ServerAlias www.app.example.com

  ProxyPreserveHost On
  ProxyPass / http://localhost:8080/
  ProxyPassReverse / http://localhost:8080/
  SetEnv force-proxy-request-1.0 1
  SetEnv proxy-nokeepalive 1
</VirtualHost>

mod_proxy и mod_rewrite включены в экземпляре apache. У меня есть запись CNAME для example.com и app.example.com. При доступе к app.example.com я получаю запрет на 403, заявив, что у меня нет доступа к / на сервере. Что я делаю не так?


4
2017-12-25 04:56


Источник


ну, прежде всего, вы должны отправить ссылку на исходный вопрос, чтобы мы могли ответить на него там, или, возможно, в обоих местах. Во-вторых, могу ли я предложить взломать? в <DocumentRoot> app.example.com, укажите каталог webapp tomcat6, то есть / usr / share / tomcat6 / webapps. PS: mod_proxy полезен для таких адресов, как example.com/app которые вы можете перенаправить на внутренние порты. - theTuxRacer
PS: Я знаю его разочарование, потому что я пытался сделать то же самое. В конце концов, я сохранил порт 8080 открытым и напрямую перешел www.example.com:8080 к webapp в tomcat. - theTuxRacer
Я нашел эту страницу для вас, хотя для CentOS, будет работать для любой установки tomcat6 + apache2. JUst убедитесь, что ваш файл proxy.conf находится в ../apache/mods-enabled/ папка. Ссылка: library.linode.com/web-servers/apache/proxy-configuration/... - theTuxRacer


Ответы:


У меня есть аналогичная проблема, когда я использую такую ​​конструкцию в определении виртуального хоста:

ProxyPass / http://localhost:8080/
ProxyPassReverse / http://localhost:8080/

В моем случае он начинает работать, когда я указываю приложение:

  • они позволяют перенаправить такой адрес: http://app.example.com/confluence

    ProxyPass /confluence/ http://localhost:8180/confluence/ 
    ProxyPassReverse /confluence/ http://localhost:8180/confluence/
    
  • они позволяют перенаправить такой адрес: http://app.example.com к надлежащему применению

    ProxyPass / http://localhost:8180/confluence/ 
    ProxyPass / http://localhost:8180/confluence/
    

2
2018-05-08 13:20





Пытаться:

VirtualHost 'app.example.com:80'

вместо

VirtualHost '*:80'

2
2018-01-08 03:59