.png)
Portanto, minha configuração atual é a seguinte: estou usando o docker (instalação sem root) e quero usarCriptografado(que usa Node.js) com Nginx como proxy reverso (isenção de responsabilidade: nunca trabalhei com Nginx antes). Cryptpad e Nginx estão sendo executados em contêineres separados. Para servir os arquivos estáticos, criei um volume onde residem todos os arquivos estáticos do Cryptpad e que é montado no Nginx-Container (somente leitura). O problema é que alguns conteúdos não podem ser servidos desta forma: os grandes arquivos blob serão salvos em um diretório externo que só pode ser acessado a partir do Cryptpad-Container (tenho minhas razões para isso). Então tentei dizer ao Nginx para proxy_pass a solicitação desses arquivos para o Node-Server do Cryptpad, mas não consigo descobrir como definir esse redirecionamento.
Minha configuração:
- nome do contêiner Nginx: nginx
- nome do Cryptpad-Container: cryptpad
- porta do Node-Server: 3000
- ambos os contêineres estão conectados à mesma rede de ponte (personalizada) (e, portanto, são acessíveis por seus nomes de contêiner)
O Nginx-Config para o servidor (abreviado para a seção relevante; código completo adaptado deaqui)
[...]
location ^~ /block/ {# modified block location to test proxy (is accessed more easily than blob)
add_header Cache-Control max-age=0;
#try_files $uri =404;# original code
try_files http://cryptpad:3000/$request_uri =409;# arbitrary error code to differentiate from normal errors
}
[...]
location @node {# used to proxy all unhandled locations to node
proxy_pass http://cryptpad:3000;
}
try_files /www/$uri /www/$uri/index.html /customize/$uri @node;
Mas sempre que /block/ é acessado o servidor retorna 409 então o redirecionamento não funcionou. Eu também tentei com proxy_pass http://cryptpad:3000/$request_uri/;
ou proxy_pass http://cryptpad:3000;
(que resultou em 404) e try_files @node =409;
.
Alguém sabe como fazer esse redirecionamento interno funcionar ou pelo menos uma forma de monitorar o tráfego entre os dois contêineres?
Responder1
Depois de mais algumas tentativas, encontrei uma configuração que funcionou: simplesmente copiei as outras linhas de proxy_passes do exemplo e assim a definição resultante para /block/ se parece com
location ^~ /block/ {
add_header Cache-Control max-age=0;
proxy_pass http://cryptpad:3000;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_hide_header Cross-Origin-Resource-Policy;
#add_header Cross-Origin-Resource-Policy cross-origin;
proxy_hide_header Cross-Origin-Embedder-Policy;
#add_header Cross-Origin-Embedder-Policy require-corp;
}