Histórico da Página
...
O objetivo deste guia é descrever os procedimentos para a configuração de um servidor de proxy reverso em uma instalação do Fluigfluig.
Configuração de Proxy Reverso / DMZ
Um proxy reverso é um servidor que repassa o tráfego de rede recebido para um ou mais servidores. Em uma instalação do Fluig fluig este tipo de servidor é usado para habilitar uma topologia de arquitetura chamada DMZ.
A implementação da DMZ no Fluig fluig é realizada com o uso do Apache™ HTTP Server, que é um servidor Web de código livre que é , desenvolvido e mantido pela Apache Software Foundation.
A figura a seguir apresenta as topologias DMZ + SSL suportadas pelo Fluigfluig.
Importante: não
Nota | ||
---|---|---|
| ||
Não é possível utilizar |
...
as notificações em tempo real quando utilizado proxy reverso com HTTPS. |
...
effectDuration | 0.5 |
---|---|
history | false |
id | samples |
effectType | fade |
...
Pré-requisitos
...
- Apache™ versão 2.4. O instalador e a documentação oficial do Apache™ podem ser encontrados em http://httpd.apache.org/.
- Se for utilizar SSL, também será necessário converter o certificado utilizado na configuração do
...
- fluig para os formatos .cer, .key e .pem. O guia para configurar o
...
- fluig em SSL (HTTPS) encontra-se aqui.
...
...
Módulos Apache
- Certifique-se que os seguintes módulos estão sendo carregados pelo
...
- Apache:
Bloco de código |
---|
# 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:
Bloco de código |
---|
# Módulo para HTTPS LoadModule ssl_module modules/mod_ssl.so |
...
Configuração do Apache
...
sem SSL
...
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:
- <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).
Bloco de código | ||
---|---|---|
| ||
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
# Listener http |
Listener HTTP
Bloco de código | ||
---|---|---|
| ||
<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> # Linstener do Chat |
Listener do Chat
Bloco de código | ||
---|---|---|
| ||
<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> # |
Listener
...
do
...
Realtime
Bloco de código | ||
---|---|---|
| ||
<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> # |
Listener
...
FTP
Bloco de código | ||
---|---|---|
| ||
<VirtualHost *:21>
ServerName <Nome externo do servidor>
ProxyPreserveHost On
ProxyPass / ftp://<IP do servidor Fluig>/
ProxyPassReverse / ftp://<IP do servidor Fluig>:21/
</VirtualHost> |
Configuração do Apache (SSL) + fluig (HTTP)
Se não for utilizado HTTPS no Fluig, deve possuir a seguinte configuração:
Onde:
<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).
...
...
id | 3 |
---|---|
label | Configuração do Apache (SSL) + Fluig (HTTP) |
...
Bloco de código | ||
---|---|---|
| ||
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>
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>
Onde: <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). |
...
...
Configuração do Apache (SSL) +
...
fluig (SSL)
...
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:
...
Bloco de código | ||
---|---|---|
| ||
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>
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> |
...