Eu luto com isso há algum tempo e definitivamente estou fazendo algo errado.
Eu tenho um servidor apache e um servidor JBoss na mesma máquina. Eu gostaria de redirecionar o tráfego do mydomain.com para o JBoss localhost: 8080 / example. O DNS está atualmente configurado para mydomain.com e irá direto para a porta 80 quando inserido no navegador.
Minha pergunta é como redirecionar para uma porta diferente quando um determinado nome de domínio chega ao apache (neste caso, "meudominio.com")?
<VirtualHost ip.addr.is.here>
ProxyPreserveHost On
ProxyRequests Off
ServerName mydomain.com
ProxyPass http://mydomain.com http://localhost:8080/example
ProxyPassReverse http://mydomain.com http://localhost:8080/example
</VirtualHost>
ATUALIZADO com sugestões - ainda não encaminhando para a porta 8080
<VirtualHost *:80>
ProxyPreserveHost On
ProxyRequests Off
ServerName mydomain.com
ServerAlias www.mydomain.com
ProxyPass http://mydomain.com http://localhost:8080/example
ProxyPassReverse http://mydomain.com http://localhost:8080/example
</VirtualHost>
Respostas:
Você deve deixar de fora o domínio
http://example.com
em ProxyPass e ProxyPassReverse e deixá-lo como/
. Além disso, você precisa deixar o/
no final deexample/
onde ele está redirecionando. Além disso, tive alguns problemas com ohttp://example.com
vs.http://www.example.com
- apenas o www funcionou até criar o ServerName www.example.com e o ServerAlias example.com. Experimente o seguinte.Depois de fazer essas alterações, adicione os módulos necessários e reinicie o apache
fonte
/usr/sbin/setsebool -P httpd_can_network_connect 1
Resolvi esse problema com o seguinte código:
Eu também usei:
fonte
Eu queria fazer exatamente isso para acessar o Jenkins a partir do domínio raiz.
Descobri que tinha que desativar o site padrão para que isso funcionasse. Aqui está exatamente o que eu fiz.
E insira isso no arquivo:
Em seguida, você precisa ativar / desativar os sites apropriados:
Espero que ajude alguém.
fonte
Descobri isso por tentativa e erro. Se sua configuração especificar um ServerName, sua diretiva VirtualHost precisará fazer o mesmo. No exemplo a seguir, awesome.example.com e amazing.example.com seriam encaminhados para algum serviço local em execução na porta 4567.
Sei que isso não responde exatamente à pergunta, mas estou colocando aqui porque este é o principal resultado da pesquisa de encaminhamento de porta Apache. Então, acho que ajudará alguém algum dia.
fonte
*:80
vez deexample.com:80
significava que a porta não seria redirecionada.Você deve certificar-se de que o proxy esteja ativado no servidor. Você pode fazer isso usando os seguintes comandos:
fonte
Esta pode ser uma pergunta antiga, mas eis o que eu fiz:
Em um arquivo .conf carregado pelo apache:
Explicação: Ouça todas as solicitações na porta 80 da máquina local. Se eu solicitei "
http://something.com/somethingorother
", encaminhe essa solicitação para "http://localhost:8080/somethingorother
". Isso deve funcionar para um visitante externo, pois, de acordo com os documentos, ele mapeia a solicitação remota para o espaço do servidor local.Estou executando o Apache 2.4.6-2ubuntu2.2, por isso não tenho certeza de como o "-2ubuntu2.2" afeta a maior aplicabilidade desta resposta.
Depois de fazer essas alterações, adicione os módulos necessários e reinicie o apache
fonte
Se você não precisar usar um proxy para o JBoss e o mydomain.com:8080 puder ser "exposto" ao mundo, eu faria isso.
fonte
Basta usar um Proxy Reverso na sua configuração apache (diretamente):
Procure aqui a documentação do apache de como usar o mod
fonte
Meu apache ouve 2 portas diferentes,
Eu uso o 80 quando quero um URL transparente e não coloco a porta após o URL útil para os serviços do Google que não permitem o URL local?
Mas eu uso o 8080 para desenvolvimento interno, onde uso a porta como referência para um "ambiente de desenvolvimento"
fonte
O Apache suporta hosts virtuais baseados em nome e IP. Parece que você está usando os dois, o que provavelmente não é o que você precisa.
Acho que você está realmente tentando configurar uma hospedagem virtual baseada em nome e, para isso, não precisa especificar o endereço IP.
Tente <VirtualHost *: 80> para vincular a todos os endereços IP, a menos que você realmente queira hospedagem virtual baseada em IP . Pode ser esse o caso se o servidor tiver vários endereços IP e você desejar servir sites diferentes em endereços diferentes. A configuração mais comum é (eu acho) os hosts virtuais baseados em nome.
fonte
Você precisa de 2 coisas:
ServerAlias www.mydomain.com
à sua configuraçãoProxyPassMatch ^(.*)$ http://localhost:8080/example$1
, para possivelmente impedir que mod_dir e as barras finais interfiram.fonte
Todos são excelentes idéias para acessar portas por meio de nomes de domínio em servidores virtuais. Não se esqueça, no entanto, de habilitar servidores virtuais; isto pode ser comentado:
Executamos o WSGI com um servidor Apache no domínio sxxxx.com e um servidor golang executando na porta 6800. Alguns firewalls parecem bloquear nomes de domínio com portas. Esta foi a nossa solução:
fonte
Isso também está funcionando no ISPConfig. Na lista de sites, entre em um domínio, clique na guia Opções e adicione estas linhas:;
Então vá ao site e wolaa :) Este também está funcionando com o protocolo HTTPS.
fonte
Tente este-
fonte