porta JIRA e proxy reverso do Apache

3

Estou tentando configurar um proxy reverso com o Apache e a instância do Tomcat junto com o JIRA. Eu segui as instruções no wiki do JIRA para um T. O site está mostrando muito bem em http://ourdomain:8080/jira muito bem, então eu sei que o arquivo Tomcat server.xml foi definido corretamente por suas instruções.

No entanto, não consigo fazer com que o proxy reverso do Apache funcione, por motivos que me iludem, apesar da leitura considerável.

Estou executando o Apache2.2 no Ubuntu com o mod_proxy e o mod_proxy_http ativado, é claro. O site default funciona bem; minha configuração de site é apenas uma versão modificada disso. Aqui está minha configuração do host virtual jira em /etc/apache2/sites-enabled/jira :

<VirtualHost *:80>
    ServerAdmin webmaster@localhost

    ServerName ourdomain.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 ${APACHE_LOG_DIR}/error.log

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

    CustomLog ${APACHE_LOG_DIR}/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>

    # JIRA Proxy Configuration
    <Proxy *>
        Order deny,allow
        Allow from all
    </Proxy>
    ProxyRequests       Off
    ProxyPreserveHost   On
    ProxyPass           /jira      http://ourdomain.com:8080/jira
    ProxyPassReverse    /jira      http://ourdomain.com:8080/jira
</VirtualHost>

Quando acessei o site em um navegador, obtenho um 404 Not Found com o seguinte texto (padrão):

The requested URL /jira was not found on this server


Apache/2.2.22 (Ubuntu) Server at ourdomain.com Port 80

Enquanto isso, a saída de apachectl -S é:

VirtualHost configuration:
wildcard NameVirtualHosts and _default_ servers:
*:80                   is a NameVirtualHost
     default server ourdomain.com.com (/etc/apache2/sites-enabled/000-default:1)
     port 80 namevhost ourdomain.com (/etc/apache2/sites-enabled/000-default:1)
     port 80 namevhost ourdomain.com (/etc/apache2/sites-enabled/jira:1)

Para que eu possa acessar o site muito bem em ourcomain.com:8080/jira , mas não em ourdomain.com/jira .

Possivelmente, essa última linha indica o problema - ele deveria estar em port 8080 , e, consequentemente, eu deveria estar alterando a entrada vhost acima?

É evidente que tenho algo errado, mas não estou vendo; minha configuração aparece para corresponder exatamente ao especificado pelas instruções no wiki do JIRA. Alguma ajuda seria muito apreciada. Eu já passei por várias outras respostas aqui e também não tive sorte com elas.

    
por Chris Krycho 23.01.2013 / 03:21

2 respostas

1

Você tem um ServerName ourdomain.com em /etc/apache2/sites-enabled/000-default e um ServerName ourdomain.com em /etc/apache2/sites-enabled/jira . O 000-default tem precedência porque é alfabeticamente primeiro; sua configuração do jira não está sendo usada.

Altere a linha ServerName ourdomain.com no arquivo 000-default ou, se você não estiver usando, simplesmente a2dissite default .

    
por 24.01.2013 / 18:12
2

Eu tenho o nosso JIRA configurado de uma maneira quase idêntica, embora o proxy passe para um site seguro.

A única diferença que eu posso encontrar entre a minha configuração e a sua é que deixei o existente / etc / apache2 / sites-enabled / 000-default como está:

<VirtualHost *:80>
    ServerAdmin webmaster@localhost

    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 ${APACHE_LOG_DIR}/error.log

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

    CustomLog ${APACHE_LOG_DIR}/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>

Mas, em seguida, adicionou um novo arquivo / etc / apache2 / sites-enabled / jira-mod_proxy que continha

<Proxy *>
Order deny,allow
Allow from all
</Proxy>

SSLProxyEngine on
ProxyRequests       Off
ProxyPreserveHost On
ProxyPass           /jira       https://localhost:8443/jira
ProxyPassReverse    /jira       https://localhost:8443/jira

Se você ignorar as portas 8443 que eu uso para SSL, as únicas diferenças que posso ver são

  1. usando localhost em vez de um FQDN, mas isso não importa, porque você pode acessar seu site em http://ourdomain:8080/jira , então o tomcat obviamente está ouvindo em seu endereço IP real

  2. Ter a configuração <Proxy> fora do elemento <VirtualHost> .

Então, talvez a configuração do Proxy precise sair das configurações do host virtual?

    
por 24.01.2013 / 19:21