Histórico da Página
Informações | ||
---|---|---|
| ||
Esta página foi revisada para considerar as configurações de server do TOTVS Fluig Plataforma a partir da atualização 1.6. |
Informações | ||
---|---|---|
| ||
Clientes cloud, os passos 2 e 4 precisam ser realizados pelo usuário, os demais passos é necessário entrar em contato com o time de Cloud para que seja realizado os demais procedimentos. |
Índice
Índice | ||||||||
---|---|---|---|---|---|---|---|---|
|
Objetivo
...
O objetivo deste guia é descrever os procedimentos para a configuração de um servidor de proxy reverso em uma instalação do Fluigda plataforma.
Dica | ||
---|---|---|
| ||
Após a configuração do Proxy Reverso, não esqueça de alterar a URL de acesso ao portal nas Configurações do Sistema da plataforma. Confira como fazer acessando Configurações do sistema. |
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 este da plataforma este tipo de servidor é usado para habilitar uma topologia de arquitetura chamada DMZ.
A implementação da DMZ no Fluig na plataforma é 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 pela plataforma TOTVS Fluig.:
Nota | ||
---|---|---|
|
...
Não é possível utilizar |
...
as notificações em tempo real quando utilizado proxy reverso com HTTPS. |
...
Deck of Cards | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
Card | | default | true||||||
id | 1 | label |
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
...
- da plataforma para os formatos .cer, .key e .pem. O guia para configurar
...
- a plataforma em SSL (HTTPS) encontra-se aqui.
...
id | 2 |
---|---|
label | Módulos Apache |
- Para a porta do realtime (7777) no Apache é necessário habilitar o modulo SSL em todos os vhosts que utilizarem o realtime SSLEngine On e SSLProxyEngine On
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 Card | |
id | 3 |
Configuração do Apache (sem SSL)
...
1. Acesse a pasta /etc/httpd/conf.d
...
.
Nota |
---|
O caminho da pasta pode variar, esse caminho do exemplo é de uma instalação Linux CentOS. |
2. Crie um arquivo de configuração para
...
a plataforma (chamado fluig.conf, por exemplo), com o seguinte conteúdo:
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>
SetEnv proxy-sendchunckedProxyPreserveHost On ProxyPass / http://<IP do servidor Fluig>:<Porta do servidor Fluig>/ ProxyPassReverse / http://<IP <Nome externo doservidor Fluig> servidor>/ </VirtualHost> # Linstener do Chat |
Listener do RealTime
...
Bloco de código | ||
---|---|---|
| ||
<VirtualHost *:7777> RequestHeaderServerName set X-Forwarded-Proto https RequestHeader set Access-Control-Allow-Origin: "https://<Nome externo do servidor>"SetEnv proxy-sendchuncked <Proxy *> RequestHeader set X-Forwarded-Host <Nome externo do servidor>:7777 ServerName <Nome externo do servidor>Order SSLProxyEnginedeny,allow OnAllow from all SSLEngine On ProxyRequests Off</Proxy> ProxyPreserveHost On Include /etc/letsencrypt/options-ssl-apache.confRewriteEngine On SSLCertificateFile <diretorio-cadeia-certificados>/cert.pemRewriteCond %{REQUEST_URI} ^/socket.io SSLCertificateKeyFile <diretorio-cadeia-certificados>/privkey.pem # allow for upgrading to websockets RewriteEngine On RewriteCond %{QUERY_STRING HTTP:Upgrade}transport =websocket [NC] RewriteRule /(.*) ws://<IP do servidor Fluig>:7777/$1 [P,L] RewriteCond %{HTTP:Upgrade} !=websocket [NC]ProxyPass RewriteRule /socket.io (.*) http://<IP do servidor Fluig>:7777/socket.io keepalive=On $1 [P,L]ProxyPassReverse ProxyPass "/socket.io " "http://<IP do servidor Fluig>:7777/socket.io retry=0 </VirtualHost> # Listener do Realtime Bloco de código | | |
|
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> Onde: |
Informações | ||
---|---|---|
| ||
<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).
Card | | |
id | 3 | label |
Configuração do Apache (SSL) + Fluig (HTTP)
...
Se não for utilizado HTTPS
...
na plataforma, deve possuir a seguinte configuração:
...
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"
ProxyRequests Off
ProxyVia On
<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>:443SetEnv proxy-sendchuncked RequestHeader set X-Forwarded-Proto https SSLProxyEngine On SSLEngine On SSLCertificateFile<caminho <diretorio-certificado>.cer crt SSLCertificateKeyFile<caminho <diretorio-chave-certificado> privada>.key SSLCertificateChainFile<caminho <diretorio-cadeia-certificado> certificados>.pem ProxyPreserveHostOff On ProxyPass / http://<IP do servidorFluig>:8080 fluig>:<Porta do servidor Fluig>/ ProxyPassReverse /http https://<IP <Nome externo do servidorFluig>:8080 /
</VirtualHost>
<VirtualHost *:21>
ServerName <Nome externo do servidor>
ProxyPreserveHost On
ProxyPass / ftp://<IP do servidor Fluig>/
ProxyPassReverse / ftp://<IP do servidor Fluig>:21/
</VirtualHost> |
Informações | |||||||
---|---|---|---|---|---|---|---|
| Onde:
| ||||||
<Nome <Nome externo do servidor>servidor>: nome que aparecerá na URL do navegador (, por exemplo, http://meuservidor.com.br ).<IP do servidor Fluig>. <diretorio-certificado>: diretório e nome do arquivo do certificado de domínio enviado pela entidade certificadora, por exemplo: /etc/httpd/ssl/cert-dominio.crt <diretorio-chave-privada>: diretório e nome do arquivo da chave privada, enviada pela entidade certificadora, por exemplo: /etc/httpd/ssl/chave-privada.key <diretorio-cadeia-certificados>: diretório e nome do arquivo que contém a cadeia de certificados, por exemplo: /etc/httpd/ssl/cert-cadeia-certificados.pem
DICA: O arquivo referente a cadeia de certificados pode ser criado concatenando os certificados de domínio, intermediários e raiz. No Linux, isto pode ser feito com o comando abaixo:
OBS: Os certificados intermediários e raiz normalmente podem ser encontrados para download no site da entidade certificadora que você escolheu. <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). No domain.xml do Fluig, localizado no appserver(<FLUIG> . |
Configuração para acessar a plataforma via mobile/OAuth
...
Essa configuração deve ser realizada para garantir que a requisição chega ao conector HTTP com o mesmo protocolo do qual a requisição foi originada.
1, Edite o arquivo domain.xml localizado no diretório do servidor de aplicação [diretório_instalação]/appserver/domain/configuration/
...
.
2. Localize o seguinte código
...
:
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
<subsystem xmlns="urn:jboss:domain:undertow:3.1"> <buffer-cache name="default"/> <server name="default-server"> <http-listener max-post-size="1073741824" name="default" socket-binding="http"/> <!-- Alterar esta linha --> <host alias="localhost" name="default-host"><single-sign-on path="/"/><filter-ref name="gzipFilter" predicate="path-suffix['.css'] or path-suffix['.js']"/></host> </server> <servlet-container name="default" stack-trace-on-error="local-only"> <jsp-config/>
<websockets/>
</servlet-container>
<filters><gzip name="gzipFilter"/></filters>
</subsystem> |
3. Na tag http-listener inclua o atributo proxy-address-forwarding com valor true, conforme mostrado abaixo:
Bloco de código | ||
---|---|---|
Como deve ficar o listener: Bloco de código | | |
| ||
Card | ||
id | 4 |
Configuração do Apache (SSL) + Fluig (SSL)
...
1. Acesse a pasta /etc/httpd/conf.d
...
.
Nota |
---|
O caminho da pasta pode variar, esse caminho do exemplo é de uma instalação Linux CentOS. |
2. Crie um arquivo de configuração para
...
a plataforma (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"
ProxyRequests Off
ProxyVia On
<VirtualHost *:443>
ServerName <Nome externo do servidor>
SetEnv proxy-sendchunckedRequestHeader set X-Forwarded-Host <Nome externo do servidor>:443 RequestHeader set X-Forwarded-Proto https SSLProxyEngine On SSLEngine On SSLCertificateFile<caminho <diretorio-certificado>.cer crt SSLCertificateKeyFile<caminho <diretorio-chave-certificado> privada>.key SSLCertificateChainFile<caminho <diretorio-cadeia-certificado> certificados>.pem ProxyPreserveHost On ProxyPass / https://<IP do servidor Fluig>:<Porta do servidor Fluig>/ ProxyPassReverse / https://<IP <Nome externo doservidor Fluig> 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> |
...