ProxyPass: URL do diretório de redirecionamento para porta não padrão

10

Estou pesquisando no Google e não tive muito sucesso em encontrar uma resposta. Estou executando um servidor no Ubuntu e tenho programas instalados que usam várias portas não padrão. Cada um usa uma porta diferente, no meu caso eles são 9090, 9091, 9092, 9093 e 9094. Eu configuro um servidor apache e tenho um nome de domínio que agora pode acessar meu servidor ao invés de ter que digitar meu endereço IP. O que eu estou procurando é uma maneira de criar diretórios que podem apontar para as diferentes portas que listei. Eu quero algo como:

https://www.mydomain.com/app1
https://www.mydomain.com/app2
http://www.mydomain.com/app3

Algumas das portas estão acima do SSL, outras não, apenas as coloco em ordem (9090-9094) para facilidade de uso da minha parte. Eu gostaria de obter o / app1 para apontar para a porta SSL 9090, / app2 para apontar para a porta SSL 9091, e / app3 para apontar para a porta não-SSL 9092. Existe uma maneira simples de fazer isso? Eu tentei adicionar ProxyPass e semelhantes com base em outras mensagens, mas nada funcionou. Preciso adicionar um novo site?

Além disso, se isso envolver a edição de arquivos, o que eu espero que seja, seria muito apreciado se você pudesse listar o local padrão do arquivo e onde adicionar as coisas. Eu continuei vendo posts dizendo para adicionar ProxyPass, então eu apenas assumi que ele estava dentro do VirtualHost, mas eu não tinha certeza. Basicamente, eu sei muito pouco sobre a configuração do servidor web e preciso ser tratado como tal.

Peço desculpas por quaisquer tags incorretas e agradeço o tempo que você levou para ler o post e qualquer ajuda que você possa fornecer.

EDIT: Para esclarecimento, os aplicativos já estão acessíveis através de https://www.mydomain.com:9090 , etc. Gostaria apenas de uma maneira de usar https://www.mydomain.com/appName para chegar ao mesmo local / página publicado por esses aplicativos.

EDIT 2: De / etc / apache2 / sites-available / default

<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

    ProxyRequests Off
    <Proxy *>
        Order deny,allow
        Allow from all
    </Proxy>
    ProxyPass /app1 https://localhost:9090/
    ProxyPassReverse /app1 https://localhost:9090/
</VirtualHost>
    
por Serneum 25.01.2013 / 19:53

1 resposta

10

Verifique se os seguintes módulos do Apache estão instalados e carregados:

mod_proxy
mod_proxy_http
mod_ssl

Você pode verificar através da execução do seguinte comando como root (supondo que o httpd esteja em seu $ PATH)

httpd -t -D DUMP_MODULES

Depois, tente alterar sua configuração para o seguinte:

ProxyRequests Off
<Proxy *>
    Order deny,allow
    Deny from all
    Allow from 127.0.0.1
</Proxy>
SSLProxyEngine on
ProxyPass /app1 https://localhost:9090
ProxyPassReverse /app1 https://localhost:9090

O proxy agora deve funcionar se você visitar http://localhost/app1 ou http://mydomain.com/app1 , supondo que mydomain.com aponte para localhost.

    
por 25.01.2013 / 22:43