Puncte:0

Nginx: nu se pot face proxy unele căi către serverul Node.js (între containerele docker dwo)

drapel us

Deci, configurația mea actuală este următoarea: folosesc docker (instalare fără rădăcină) și vreau să o folosesc Cryptpad (care folosește Node.js) cu Nginx ca proxy invers (avertisment: nu am mai lucrat niciodată cu Nginx). Cryptpad și Nginx rulează ambele în containere separate. Pentru a servi fișierele statice, am creat un volum în care se află toate fișierele statice din Cryptpad și care este montat în Nginx-Container (numai pentru citire). Problema este că unele conținuturi nu pot fi servite în acest fel: fișierele blob mari vor fi salvate într-un director extern care este accesibil doar din Cryptpad-Container (am motivele mele pentru asta). Așa că am încercat să-i spun lui Nginx să treacă proxy_pass cererea pentru aceste fișiere către Node-Server al Cryptpad, dar nu reușesc să-mi dau seama cum să definesc această redirecționare.

Configurația mea:

  • numele Nginx-Container: nginx
  • numele Cryptpad-Container: cryptpad
  • portul Node-Server: 3000
  • ambele containere sunt conectate la aceeași rețea de punte (personalizată) (și astfel sunt accesibile prin numele lor de containere)

Nginx-Config pentru server (scurtat la secțiunea relevantă; codul complet adaptat de la Aici)

[...]
locație ^~ /block/ {# locația blocului modificată pentru a testa proxy-ul (este accesat mai ușor decât blob)
    add_header Cache-Control max-age=0;

    #try_files $uri =404;# cod original
    try_files http://cryptpad:3000/$request_uri =409;# cod de eroare arbitrar pentru a se diferenția de erorile normale
}
[...]
locație @node {# folosit pentru a trimite toate locațiile necontrolate către nod
    proxy_pass http://cryptpad:3000;
}

try_files /www/$uri /www/$uri/index.html /customize/$uri @node;

Dar ori de câte ori /block/ este accesat, serverul returnează 409, așa că redirecționarea nu a funcționat. Am incercat si eu cu proxy_pass http://cryptpad:3000/$request_uri/; sau proxy_pass http://cryptpad:3000; (care a rezultat într-un 404) și try_files @node =409;.

Deci, știe cineva cum să funcționeze această redirecționare internă sau măcar o modalitate de a monitoriza traficul dintre cele două containere?

Michael Hampton avatar
drapel cz
Ar trebui să începeți de la capăt cu exemplul de configurare. Ești foarte departe de asta acum.
Max.-F. avatar
drapel us
@MichaelHampton Nu m-am schimbat atât de mult, cea mai mare schimbare sunt proxy-urile suplimentare descrise pentru a permite comunicarea între containere
Puncte:0
drapel us

După mai multe încercări, am găsit o configurație care a funcționat: pur și simplu am copiat celelalte linii din proxy_passes din exemplu și astfel definiția rezultată pentru /block/ arată ca

locație ^~ /bloc/ {
    add_header Cache-Control max-age=0;

    proxy_pass http://cryptpad:3000;
    proxy_set_header X-Real-IP $adresă_la distanță;
    proxy_set_header Gazdă $gazdă;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_hide_header Politica de resurse încrucișate;
    #add_header Cross-Origin-Resource-Policy cross-origin;
    proxy_hide_header Politică de încorporare încrucișată;
    #add_header Cross-Origin-Embedder-Policy require-corp;
}

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.