Encaminhando solicitações do Apache para o Payara Server 5 no Ubuntu

Nesta série de artigos, tentaremos fornecer uma visão geral dos conceitos básicos do uso do Payara Server na produção usando o Apache Web Server (httpd) e o Ubuntu. Muitos dos conceitos não confiam nas ferramentas que usamos aqui e podem ser aplicadas a outros cenários.


Nosso objetivo é configurar o seguinte:

imagem

Aqui temos um servidor web Apache que estará disponível para nossos usuários. Seus pedidos serão enviados para uma das duas instâncias do servidor Payara. Aqui, examinamos o uso da "colagem" de sessões JSESSIONID para garantir que cada usuário interaja com o mesmo servidor Payara, bem como a replicação da sessão, para garantir que, se um servidor Payara falhar, o outro possa lidar com as sessões existentes. não tem problema


Assumimos que o servidor da web Apache já esteja instalado e configurado. Nosso próximo passo é configurar o encaminhamento de solicitação para enviar tráfego ao Payara Server.


O que é encaminhamento de solicitação?


O encaminhamento de solicitação (ou proxy) ocorre quando um servidor que recebe tráfego da Web o envia para outro destino. Eles podem ser usados ​​para ocultar a localização real do usuário, não para ver sistemas internos ou para controlar o desempenho. Como a maioria dos servidores da Web, o servidor da Apache pode ser complementado com módulos que permitem encaminhar solicitações ao servidor e enviar respostas por meio de um proxy. Isso significa que você pode usar o Apache como um intermediário, o que elimina a necessidade de especificar números de porta ou endereços IP exatos e permite que o usuário receba respostas do mesmo servidor (em vez de clicar em localhost e ter uma barra de endereços denominada localhost : 8080 )


Configurar o encaminhamento de solicitação entre o servidor da web Apache e o servidor Payara


Neste post, veremos um pacote disponível no repositório Ubuntu. O pacote Ubuntu contém binários Apache, mas também possui "ferramentas auxiliares" adicionais para gerenciar arquivos de configuração. No Ubuntu 18, os dois módulos que precisamos adicionar ao Apache fazem parte do pacote apache2 que instalamos anteriormente. Pode ser instalado a partir do repositório usando:

sudo apt install apache2 

Observe que, antes do Ubuntu 16.04, você precisará usar "apt-get" em vez de "apt".

Instalaremos dois módulos para permitir o encaminhamento básico de solicitações http - mod_proxy e mod_proxy_http. No Ubuntu, as ferramentas auxiliares controlam a instalação desses módulos - para facilitar ainda mais, as ferramentas procurarão suas dependências e as incluirão. É útil que o mod_proxy_http exija o mod_proxy para funcionar, o que significa que nossa equipe se parece com isso:

 sudo a2enmod proxy_http 

Observe que nesses comandos podemos omitir o prefixo "mod_"


imagem


Se você deseja desativar o módulo, existe uma ferramenta auxiliar para o a2enmod chamada a2dismod, que é usada da mesma maneira. A ferramenta detectou uma dependência e também incluiu mod_proxy. Se você tinha vários módulos que desejava ativar, pode adicioná-los após proxy_http, separando-os com espaços ...


Reiniciaremos o servidor mais tarde, pois também precisamos alterar a configuração.


O pacote apache2 no Ubuntu tem um exemplo de configuração de site chamado "000-default". O arquivo de configuração deste site está localizado na pasta / etc / apache2 / sites-available e contém um link simbólico para a pasta habilitada para sites.


Estrutura do arquivo de configuração do Apache


Como regra, você verá que os manuais da Internet se referem ao httpd.conf como um arquivo de configuração para edição. Este é apenas o arquivo de configuração padrão "pai". Nos sistemas Debian / Ubuntu (e seus derivados, como Linux Mint), o arquivo de pesquisa é apache2.conf.


Este arquivo é lido e suas diretivas são aplicadas de cima para baixo; portanto, se dois valores diferentes forem definidos para a mesma propriedade, o segundo será aplicado. (Mais precisamente, o primeiro será aplicado apenas até o segundo parâmetro ser lido).


Esse arquivo também pode "incluir" especificamente arquivos e pastas (observe que os curingas também funcionam). Eles serão lidos e combinados com a configuração principal no local em que "incluir" está escrito. Portanto, a última linha no arquivo de configuração principal (se não especificar outro arquivo) será a última linha da configuração a ser instalada, não importa o quê.


A página padrão na nova instalação do Apache no Ubuntu está em /var/www/index.html e fornece uma boa visão geral de como isso funciona em detalhes.


Criando uma nova configuração de site


Não usaremos a configuração padrão porque precisamos adicionar um comportamento específico. Copie a configuração antiga dos sites disponíveis e renomeie-a para algo memorável.


 sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/payara-site.conf 

Abra um novo arquivo no seu editor de texto preferido como raiz. Você deve ver algo assim:


imagem

O elemento contém uma série de diretivas que informam ao servidor como responder às solicitações de entrada listadas. Neste exemplo, <VirtualHost *: 80> processa todas as respostas recebidas pelo servidor através da porta 80. Para obter uma descrição mais detalhada das tags VirtualHost, consulte a documentação do Apache.

Precisamos adicionar duas linhas nas tags para informar ao Apache como lidar com o tráfego de entrada e saída - uma para informar ao Apache para onde enviar solicitações e a outra para informar ao Apache de onde as respostas devem vir. Dessa forma, um usuário que visita o host local pode ser redirecionado para o servidor de aplicativos em localhost : 8080 /, e as respostas direcionadas ao localhost : 8080 / são redirecionadas, para que o usuário as veja provenientes do host local .

Para controlar o tráfego recebido, adicione a linha:


 ProxyPass / http://localhost:8080/ 

Esta diretiva diz ao Apache para enviar tudo após o nome de domínio do servidor para localhost : 8080 /, como se o usuário fosse diretamente para este URL.

  ProxyPassReverse / http://localhost:8080/ 

Esta diretiva informa ao Apache o URL de retorno do proxy para que, embora a resposta seja retornada da instância do Payara Server para a porta 8080, o URL pareça ter sido recebido do Apache. Essas duas diretivas, quando usadas juntas, significam que podemos evitar expressões regulares complexas com mod_rewrite.


Supondo que o nome de domínio que queremos usar, por exemplo, www.example.com , nossa configuração signifique que a solicitação para www.example.com/myapp será realmente enviada ao servidor Payara, como se o usuário tivesse se conectado diretamente ao localhost : 8080 // MyApp.


Seu arquivo agora deve ficar assim (excluí a maioria dos comentários para esclarecer o que exatamente é necessário):


imagem
Salve seu arquivo.

Para desativar o site padrão e ativar nossa nova configuração, execute os comandos:


  sudo a2dissite 000-default.conf sudo a2ensite payaraSite.conf 

Reinicie o serviço do servidor HTTP Apache (a reinicialização que ignoramos anteriormente):

 sudo service apache2 restart 

Para parar e iniciar o Apache HTTP Server, é:

parada de serviço

  sudo service apache2 stop sudo service apache2 start 

Não se esqueça de iniciar o Payara Server:

 /opt/payara5/bin/asadmin start-domain domain1 

Antes de fazer alterações na configuração, vá para localhost , você será levado à tela de boas-vindas do Apache:


imagem

Mas agora adicionamos ao nosso servidor proxy e incluímos novas diretivas para a configuração do usuário do Apache quando inserimos localhost / index.html, que agora enviamos para a tela de boas-vindas do Payara Server:

imagem

Agora você pode adicionar aplicativos ao servidor Payara


Portanto, agora temos um servidor HTTP Apache ativo, atuando como nosso proxy (com a capacidade de adicionar módulos adicionais) e um servidor Payara em funcionamento, pronto para adicionar aplicativos a ele.

Passamos pela instalação dos dois servidores, configurando o Apache, explorando o sistema de arquivos e analisamos brevemente os comandos do servidor Payad Server asadmin.


Da próxima vez, veremos como estender a funcionalidade do Apache e Payara Server e como podemos fazer com que o Payara Server forneça escalabilidade e melhorias adicionais que adicionaremos ao Apache para lidar com vários servidores internos.

Source: https://habr.com/ru/post/pt438442/


All Articles