Puncte:1

Nginx convertește cererea POST în cererea GET în timp ce proxy_pass

drapel es

Am 3 servere: A, B, C. Detaliile sunt:

  1. Server A: Server NGINX, URL: https://test1.example.com
  2. Server B: serverul NGINX care găzduiește aplicația web NodeJS, URL: http://test2.example.com
  3. Server C: Server Apache2 care găzduiește aplicația web Django, URL: http://test3.example.com

Serverul A(NGINX Server) este un server orientat către public, care acționează ca echilibrator de încărcare folosind proxy_pass. Serverul B(NGINX Server) are un formular și îl trimite prin cerere POST către Server C (UWSGI Django Server folosind Apache2). Solicitarea este de la serverul B cu url: https://test1.example.com/register la Server C, dar Server A îl convertește în cerere GET.

Așa că primesc 2 jurnal de cereri, unul cu POST și altul cu GET cu aceeași cale "/register"

Configurația este prezentată în figură (Diagrama este la sfârșitul postării).

Configurația este după cum urmează:

  1. Server A:

    Server {
    
       asculta 443 ssl http2;
       asculta [::]:443 ssl http2;
       nume_server test1.example.com;
    
        certificat_ssl /etc/ssl/test1/test1.example.com.crt;
        cheie_certificat_ssl /etc/ssl/test1/test1.example.com.key;
    
       # Configurație Proxy/Loadbalancer`
    
       # Testarea cererii`
    
            Locație / {
              proxy_pass http://test2.example.com;
            }
    
            locație /registru/{
                    proxy_pass http://test3.example.com;
            }
    }
    
  2. Server B:

    Server {
    
        asculta 80 default_server;
    
        asculta [::]:80 default_server;
    
        rădăcină /var/www/html;
    
        # Adăugați index.php la listă dacă utilizați PHP
        index index.html index.htm;
    
        nume_server test2.example.com;
    
        Locație / {
                #try_files $uri $uri/ =404;
                 try_files $uri $uri/ /index.html;
        }
    
        access_log /var/log/nginx/access.log;
        error_log /var/log/nginx/error.log;
    

    }

  3. Server C:

    <VirtualHost *:80>
    ServerNume test3.example.com
    ServerAdmin [email protected]
    DocumentRoot /var/www/test
    
    Alias ​​/static/ /var/www/test/webapp/static/
    Alias ​​/media/ /var/www/test/media/
    
    WSGIScriptAlias ​​/ /var/www/test/webapp/wsgi.py
    WSGIDaemonProcess cdac.in python-path=/var/www/test \
        python-home=/var/www/test/venv processes=5 fire=8
    WSGIProcessGroup cdac.in
    <Director /var/www/test/webapp/>
        Opțiuni -Indici
        Ordin refuza, permite
        Permite de la toți
        Solicitați toate acordate
    </Director>
    
    Informații LogLevel
    
    # PROJECT_NAME este folosit pentru a separa fișierele jurnal ale acestei aplicații
    ErrorLog /var/log/apache2/error.log
    CustomLog /var/log/apache2/access.log combinat
    

Unde gresesc.

Diagrama de configurare

djdomi avatar
drapel za
după ce am căutat puțin, am găsit acest https://serverfault.com/questions/312111/how-do-i-get-nginx-to-forward-http-post-requests-via-rewrite poate te ajută
Amarjeet Sharma avatar
drapel es
@djdomi Am încercat să nu funcționeze

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.