Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.
Informações
titleAtenção

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
titlePlataforma TOTVS Fluig em cloud

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
maxLevel4
outlinetrue
exclude.*ndice
stylenone

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
titleDica

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.:

Image Modified

Nota
titleImportante

...

Não é possível utilizar

...

as notificações em tempo real quando utilizado proxy reverso com HTTPS.

...

 

label

Deck of Cards
effectDuration0.5
historyfalse
idsamples
effectTypefade
Card
defaulttrue
id1



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.

...

 

...


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:

id
Bloco de código
# Módulo para HTTPS

LoadModule ssl_module modules/mod_ssl.so
 
Card
3label


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
languagexml
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
languagexml
<VirtualHost *:80>
    ServerName <Nome externo do servidor>
SetEnv proxy-sendchuncked

    ProxyPreserveHost On
    ProxyPass / http://<IP do servidor Fluig>:<Porta do servidor Fluig>/
    ProxyPassReverse / http://
<IP
<Nome externo do 
servidor Fluig>
servidor>/
</VirtualHost>
 
 
# Linstener do Chat 

Listener do RealTime

...

Bloco de código
languagexml
<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

...

Bloco de código
languagexml
 <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>
 
 

...

FTP

...

Bloco de código
languagexml
<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
titleLegenda

<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
    id3
    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
    languagexml
    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
    
    <VirtualHost *:80>
        RewriteEngine On
        RewriteCond %{HTTPS} off
        RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
    </VirtualHost>
    
    <VirtualHost *:443>
        ServerName <Nome externo do servidor>
        RequestHeader 
    SetEnv proxy-sendchuncked
    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 
    Off
    On
        ProxyPass / http://<IP do servidor fluig>:<Porta do servidor Fluig>
    :8080
    /
        ProxyPassReverse / 
    http
    https://
    <IP
    <Nome externo do servidor
    Fluig>: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>
     
     Onde:
    Informações
    title
    Legenda
    <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

    Nota

    O caminho da pasta pode variar, esse caminho do exemplo é de uma instalação Linux CentOS.

    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:

    Bloco de código
    languagebash
    cat cert-dominio.crt cert-intermediario.crt cert-raiz.crt > cert-cadeia-certificados.pem

    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
    languagexml
    themeEclipse
    titledomain.xml
    <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:

    <http-listener max-post-size="1073741824" name="default" socket-binding="http" proxy-address-forwarding="true"/>

     

     

    card
    Bloco de código

     

     

    Como deve ficar o listener:

    Bloco de código
    languagexml
    id4
    label


    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
    languagexml
    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>
     RequestHeader set X-Forwarded-Host <Nome externo do servidor>:443
     RequestHeader 
    SetEnv
    set 
    proxy-sendchuncked
    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 do 
    servidor 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>

     

     

     

     

    ...