Árvore de páginas

Configurando um proxy reverso com apache 2.4 + Linux

Guia passo a passo

  1. Esta atividade tem como pré-requisito um Sistema operacional linux com apache 2.4
  2. Instale o apache no seu servidor com os seguintes módulos: mod_proxy, mod_xml2enc, mod_proxy_html, mod_unique_id
  3. Caso deseje que o apache funcione como um WAF, instale o modulo mod_security2
  4. Crie a pasta root do seu site com o comando abaixo:

    mkdir /var/www/nomeexterno.dominio.com.br
  5. Adicione no arquivo de configurações do apache /etc/httpd/conf/httpd.conf (pode mudar dependendo da distro) o conteúdo abaixo:

    <VirtualHost *:80>
    	ServerName nomeexterno.dominio.com.br
    	DocumentRoot /var/www/nomeexterno.dominio.com.br
    
    	ErrorLog logs/nomeexterno.dominio.com.br_error_log
    	TransferLog logs/nomeexterno.dominio.com.br_access_log
    
    	Header edit* Location http://nomeinterno.dominio.com.br:porta http://nomeexterno.dominio.com.br
    
    	RequestHeader unset Accept-Encoding
    
    	Redirect /autorizador /autorizador/
    	Redirect /images /images/
    	Redirect /perfil /perfil/
    	Redirect /perfilmedico /perfilmedico/
    	Redirect /perfil-content /perfil/
    	Redirect /sbioapplet /sbioapplet/
    	Redirect / /autorizador/
    
    	ProxyPass "/autorizador/" "http://nomeinterno.dominio.com.br:porta/autorizador/"
    	ProxyPassReverse "/autorizador/" "http://nomeinterno.dominio.com.br:porta/autorizador/"
    
    	ProxyPass "/images/" "http://nomeinterno.dominio.com.br:porta/images/"
    	ProxyPassReverse "/images/" "http://nomeinterno.dominio.com.br:porta/images/"
    
    	ProxyPass "/perfil/" "http://nomeinterno.dominio.com.br:porta/perfil/"
    	ProxyPassReverse "/perfil/" "http://nomeinterno.dominio.com.br:porta/perfil/"
    
    	ProxyPass "/perfilmedico/" "http://nomeinterno.dominio.com.br:porta/perfilmedico/"
    	ProxyPassReverse "/perfilmedico/" "http://nomeinterno.dominio.com.br:porta/perfilmedico/"
    
    	ProxyPass "/sbioapplet/" "http://nomeinterno.dominio.com.br:porta/sbioapplet/"
    	ProxyPassReverse "/sbioapplet/" "http://nomeinterno.dominio.com.br:porta/sbioapplet/"
    
    	<IfModule mod_security2.c>
    		SecRuleRemoveById 960032
    	</IfModule>
    
    	<Location />
    		Require all denied
    	</Location>
    
    	<Location /autorizador>
    		Require all granted
    	</Location>
    
    	<Location /autorizador/j_security_check>
    		<IfModule mod_security2.c>
    			SecRuleRemoveById 960024
    		</IfModule>
    
    		Require all granted
    	</Location>
    
    	<Location /autorizador/pages/checkin/checkin.jsf>
    		<IfModule mod_security2.c>
    			SecRuleRemoveById 981246
    			SecRuleRemoveById 960024
    			SecRuleRemoveById 981173
    		</IfModule>
    
    		Require all granted
    	</Location>
    
    	<Location /autorizador/pages/guides/v30200>
    		<IfModule mod_security2.c>
    			SecRuleRemoveById 960024
    		</IfModule>
    
    		Require all granted
    	</Location>
    
    	<Location /images>
    		Require all granted
    	</Location>
    
    	<Location /perfil>
    		AddOutputFilterByType SUBSTITUTE text/html text/css
    		Substitute "s|iso-8859-1|UTF-8|ni"
    
    		Require all granted
    	</Location>
    
    	<Location /perfilmedico>
    		Require all granted
    	</Location>
    
    	<Location /sbioapplet>
    		Require all granted
    	</Location>
    
        <Location /autorizador/pages/perfil/internmentPerfil>
    		ProxyPreserveHost On
    	</Location>
    	
    	<Location /autorizador/pages/perfil/sadtPerfil>
    		ProxyPreserveHost On
    	</Location>
    
    </VirtualHost>
    
    
  6. Edite as configurações demonstradas acima de acordo com os nomes externos e internos definidos pela sua organização de cada serviço, substituindo os nomes “nomeexterno.dominio.com.br” e “nomeinterno.dominio.com.br:porta”.

  7. Reinicie o apache e teste o acesso ao site pelo endereço http:// nomeexterno.dominio.com.br

Considerações

  1. Com o mod_security2 habilitado, existe a possibilidade de bloqueios (código 403), onde cada acesso deve ser analisado e tratado de acordo com a necessidade de cada organização.
  2. Caso possua, confira suas configurações de firewall e IDS para não bloquear suas aplicações de forma indevida.
  3. Os módulos citados são encontrados na página oficial do apache https://httpd.apache.org/docs/2.4/mod/

Artigos relacionados