Eu tenho 3 servidores em execução em 3 VMs separadas. Um lida com solicitações de domínio e reverso de proxies com os outros dois e adiciona criptografia SSL. O primeiro serviço executa o NextCloud (PHP-FPM 7, Nginx, MariaDB) e o segundo executa o Guacamole (Jetty, Guacd, MySQL). Ambos os serviços são executados de forma independente, sem problemas. Cada serviço pode ser proxy reverso sem problemas. Eu segui as instruções de ambos os provedores para configurar os proxies reversos conforme necessário.
Quando tento servir os dois serviços do mesmo proxy reverso nginx (para que guac.domain.com e cloud.domain.com sejam roteados corretamente), o serviço Guacamole continua acessível, mas o NextCloud pára de responder e retorna apenas 502 erros. Se eu fechar a janela do navegador Guacamole por vários minutos, a nuvem ficará acessível novamente. Não há nada em nenhum dos arquivos de log que eu possa ver que aponta para o problema (além do tempo limite do gateway)
O proxy reverso é configurado da seguinte forma:
worker_processes 2;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
access_log logs/access.log main;
error_log /var/log/nginxerror.log warn;
sendfile off;
keepalive_timeout 65;
gzip off;
server_tokens off;
#default for non-configured domains and IP address
server {
return 404;
}
include /usr/local/etc/nginx/nginx-sites/*.conf;
}
/ usr / local / etc / nginx / nginx-sites / *. conf inclui duas configurações:
Proxy NextCloud:
server {
server_name cloud.domain.com;
listen 80;
#redirect visitors to the HTTPS version of the site
location / {
return 301 https://$server_name$request_uri;
}
}
server {
server_name cloud.domain.com;
listen 443 ssl;
#### unimportant SSL config
access_log /var/log/nginx/cloud.access.log;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://172.16.1.108;
#proxy_read_timeout 90;
}
}
Proxy do Guacamole:
server {
server_name guac.domain.com;
listen 80;
#redirect visitors to the HTTPS version of the site
location / {
return 301 https://$server_name$request_uri;
}
}
server {
server_name guac.domain.com;
listen 443 ssl;
#### unimportant SSL config
access_log /var/log/nginx/guac.access.log;
location / {
auth_basic "Guac Login";
auth_basic_user_file /usr/local/etc/nginx/nginx-sites/guac.pas;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $http_connection;
proxy_cookie_path /guacamole/ /;
proxy_pass http://172.16.1.110:8080/guacamole/;
}
}
Eu tentei mudar a diretiva proxy_pass para a configuração cloud.domain.com para um site interno diferente que é muito mais simples que o NextCloud e o proxy continua funcionando. Eu suspeito que o problema está no websocket que o proxy está tentando manter, mas estou perdendo como depurá-lo.
Obrigado.
Tags networking proxy nginx guacamole