Esta página foi revisada para considerar as novas configurações de server do fluig para a atualização 1.6. Caso possua uma atualização anterior do fluig acesse: CON 082 - Configuração de Proxy Reverso. |
O objetivo deste guia é descrever os procedimentos para a configuração de um servidor de proxy reverso em uma instalação do fluig.
Um proxy reverso é um servidor que repassa o tráfego de rede recebido para um ou mais servidores. Em uma instalação do fluig este tipo de servidor é usado para habilitar uma topologia de arquitetura chamada DMZ.
A implementação da DMZ no fluig é realizada com o uso do Apache™ HTTP Server, que é um servidor Web de código livre, desenvolvido e mantido pela Apache Software Foundation.
A figura a seguir apresenta as topologias DMZ + SSL suportadas pelo fluig:
Não é possível utilizar as notificações em tempo real quando utilizado proxy reverso com HTTPS. |
# Módulos para WebDAV LoadModule dav_module modules/mod_dav.so LoadModule dav_fs_module modules/mod_dav_fs.so LoadModule dav_lock_module modules/mod_dav_lock.so # Módulos para proxy reverso LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_ajp_module modules/mod_proxy_ajp.so LoadModule proxy_connect_module modules/mod_proxy_connect.so LoadModule proxy_express_module modules/mod_proxy_express.so LoadModule proxy_fdpass_module modules/mod_proxy_fdpass.so LoadModule proxy_ftp_module modules/mod_proxy_ftp.so LoadModule proxy_http_module modules/mod_proxy_http.so |
Se for utilizar SSL no lado DMZ, certifique-se ainda que o seguinte módulo está sendo carregado pelo Apache:
# Módulo para HTTPS LoadModule ssl_module modules/mod_ssl.so |
Na pasta /etc/httpd/conf.d (quando instalado na configuração padrão) crie um arquivo de configuração para o fluig (chamado fluig.conf, por exemplo), com o seguinte conteúdo:
Listen 7777 Listen 8888 Listen 21 Header set Access-Control-Allow-Origin: "http://<Nome externo do servidor>" Header set Access-Control-Allow-Headers: "Content-Type, X-Requested-With, accept-version" Header set Access-Control-Allow-Methods: "GET, PUT, OPTIONS, DELETE, POST" Header Set Access-Control-Request-Method: "GET, PUT, OPTIONS, DELETE, POST" ProxyRequests Off ProxyVia On AllowConnect 7777 AllowConnect 8888 AllowConnect 21 |
<VirtualHost *:80> ServerName <Nome externo do servidor> ProxyPreserveHost On ProxyPass / http://<IP do servidor Fluig>:<Porta do servidor Fluig>/ ProxyPassReverse / http://<Nome externo do servidor>/ </VirtualHost> |
<VirtualHost *:7777> ServerName <Nome externo do servidor> SetEnv proxy-sendchuncked <Proxy *> Order deny,allow Allow from all </Proxy> ProxyPreserveHost On RewriteEngine On RewriteCond %{REQUEST_URI} ^/socket.io RewriteCond %{QUERY_STRING} transport=websocket RewriteRule /(.*) ws://<IP do servidor Fluig>:7777/$1 ProxyPass /socket.io http://<IP do servidor Fluig>:7777/socket.io keepalive=On ProxyPassReverse /socket.io http://<IP do servidor Fluig>:7777/socket.io retry=0 </VirtualHost> |
<VirtualHost *:8888> ServerName <Nome externo do servidor> SetEnv proxy-sendchuncked ProxyPreserveHost On ProxyPass / http://<IP do servidor Fluig>:8888/ ProxyPassReverse / http://<IP do servidor Fluig>:8888/ </VirtualHost> |
<VirtualHost *:21> ServerName <Nome externo do servidor> ProxyPreserveHost On ProxyPass / ftp://<IP do servidor Fluig>/ ProxyPassReverse / ftp://<IP do servidor Fluig>:21/ </VirtualHost> |
<Nome externo do servidor>: nome que aparecerá na URL do navegador, por exemplo, http://meuservidor.com.br. <IP do servidor Fluig>: endereço IP interno do servidor onde o fluig está rodando, por exemplo, 10.10.2.35. <caminho-certificado>: caminho e nome do arquivo de certificado, por exemplo, /etc/httpd/ssl/fluig. |
Se não for utilizado HTTPS no fluig, deve possuir a seguinte configuração:
Header set Access-Control-Allow-Origin: "https://meuservidor.fluig.com/" Header set Access-Control-Allow-Headers: "Content-Type, X-Requested-With, accept-version" Header set Access-Control-Allow-Methods: "GET, PUT, OPTIONS, DELETE, POST" Header Set Access-Control-Request-Method: "GET, PUT, OPTIONS, DELETE, POST" <VirtualHost *:80> RewriteEngine On RewriteCond %{HTTPS} off RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} </VirtualHost> <VirtualHost *:443> ServerName <Nome externo do servidor> RequestHeader set X-Forwarded-Host <Nome externo do servidor>:443 RequestHeader set X-Forwarded-Proto https SSLProxyEngine On SSLEngine On SSLCertificateFile <caminho-certificado>.cer SSLCertificateKeyFile <caminho-certificado>.key SSLCertificateChainFile <caminho-certificado>.pem ProxyPreserveHost On ProxyPass / http://<IP do servidor Fluig>:<Porta do servidor Fluig>/ ProxyPassReverse / https://<Nome externo do servidor/ </VirtualHost> <VirtualHost *:21> ServerName <Nome externo do servidor> ProxyPreserveHost On ProxyPass / ftp://<IP do servidor Fluig>/ ProxyPassReverse / ftp://<IP do servidor Fluig>:21/ </VirtualHost> |
<Nome externo do servidor>: nome que aparecerá na URL do navegador, por exemplo, http://meuservidor.com.br. <IP do servidor Fluig>: endereço IP interno do servidor onde o fluig está rodando, por exemplo, 10.10.2.35. <caminho-certificado>: caminho e nome do arquivo de certificado, por exemplo, /etc/httpd/ssl/fluig. |
Na pasta /etc/httpd/conf.d (quando instalado na configuração padrão) crie um arquivo de configuração para o fluig (chamado fluig.conf, por exemplo), com o seguinte conteúdo, caso seja utilizado HTTPS também no lado do fluig:
Header set Access-Control-Allow-Origin: "https://<Nome externo do servidor>" Header set Access-Control-Allow-Headers: "Content-Type, X-Requested-With, accept-version" Header set Access-Control-Allow-Methods: "GET, PUT, OPTIONS, DELETE, POST" Header Set Access-Control-Request-Method: "GET, PUT, OPTIONS, DELETE, POST" <VirtualHost *:443> ServerName <Nome externo do servidor> RequestHeader set X-Forwarded-Host <Nome externo do servidor>:443 RequestHeader set X-Forwarded-Proto https SSLProxyEngine On SSLEngine On SSLCertificateFile <caminho-certificado>.cer SSLCertificateKeyFile <caminho-certificado>.key SSLCertificateChainFile <caminho-certificado>.pem ProxyPreserveHost On ProxyPass / https://<IP do servidor Fluig>:<Porta do servidor Fluig>/ ProxyPassReverse / https://<Nome externo do servidor>/ </VirtualHost> <VirtualHost *:21> ServerName <Nome externo do servidor> ProxyPreserveHost On ProxyPass / ftp://<IP do servidor Fluig>/ ProxyPassReverse / ftp://<IP do servidor Fluig>:21/ </VirtualHost> |
Após a configuração do Proxy Reverso, não esqueça de alterar a URL de acesso ao fluig. Confira como aqui: "Configurações do sistema" |