WebHU - Programozási kérdések és válaszok

Node.js+Nginx 502 rossz átjáró hibát dob

Most telepítettem a Node.js alkalmazást a fejlesztői környezetbe. A konfiguráció: Ubuntu 16.x PHP 7.0 Node.js 8.x Mysql PhpMyAdmin Nginx

A csomópont-alkalmazásom a 2000-es portot használja, és az almappa neve nodeapp. Bár a phpmyadmin megfelelően nyílik, a Node alkalmazás 502 Bad átjárót ad.

Itt van az nginx conf fájl:

server {
    listen 80 default_server;
    listen [::]:80 default_server;
        listen 2000;

    root /home/pjsp/public_html;
    index index.php index.html index.htm index.nginx-debian.html app.js;

    server_name mydomain.com;

    location /nodeapp {
    proxy_pass http://localhost/nodeapp:2000;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection 'upgrade';
    proxy_set_header Host $host;
    proxy_cache_bypass $http_upgrade;
}
    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php7.0-fpm.sock;
    }

    location ~ /\.ht {
        deny all;
    }

}

Az alábbiakban látható a hiba, amelyet a /var/log/nginx/error.log fájlban kapok:

2018/06/02 13:13:15 [error] 32209#32209: *763 recv() failed (104: Connection reset by peer) while reading response header from upstream, client: 127.0.0.1, server: mydomain.com, request: "GET /nodeapp:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000

Kérem, segítsen!

Frissítés:

Új konfigurációs fájl:

server {
    listen 80 default_server;
    listen [::]:80 default_server;
        #listen 2000;

    root /home/pjsp/public_html;
    index index.php index.html index.htm index.nginx-debian.html app.js;

    server_name app.pajasa.com www.app.pajasa.com;

    location /nodeapp {
    proxy_pass http://localhost;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection 'upgrade';
    proxy_set_header Host $host;
    proxy_cache_bypass $http_upgrade;
}
    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php7.0-fpm.sock;
    }

    location ~ /\.ht {
        deny all;
    }

}

Most hibaüzenetet kap:

2018/06/02 14:52:35 [alert] 3026#3026: *765 768 worker_connections are not enough while connecting to upstream, client: 127.0.0.1, server: app.pajasa.com, request: "GET /nodeapp:2000 HTTP/1.1", upstream: "http://127.0.0.1:80/nodeapp:2000", host: "www.app.pajasa.com"

url : www.app.pajasa.com/nodeapp:2000


Válaszok:


1

Van egy végtelen hurok az nginxedben. ezért látod:

/nodeapp:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000:2000....

Ha a Node alkalmazás a 2000-es porton figyel, ne használja a listen 2000;-t az Nnginx-en.

És miután ezt eldobta, a http://localhost/nodeapp címre vonatkozó kérés átkerül a csomópont-alkalmazásba.

Továbbá a proxy_pass hibás, ennek a következőnek kell lennie:

 proxy_pass http://localhost:2000;

FRISSÍTÉS

Az URL-címe hibás

www.app.pajasa.com/nodeapp:2000 // INCORRECT

Először is, ahogy már említettük, ha az Nginxet használja a Node.js APP proxyjához, akkor nem kell hozzáadnia a portot az URL-hez, másodszor és még fontosabb, hogy a portok nem így működnek:

www.app.pajasa.com:2000 // This is correct

Húzza el a :2000 elemet az URL-ből, az Nginx proxyszerinti a csomópont-alkalmazáshoz.

www.app.pajasa.com/nodeapp
02.06.2018
  • Köszönöm , az Ön javaslata szerint változtattam, és most a Log error az alábbira módosult: 2018/06/02 13:32:46 [figyelmeztetés] 2367#2367: *2293 A 768 worker_connections nem elegendő a upstreamhez való csatlakozáskor, kliens: 127.0. 0.1, szerver: app.pajasa.com, kérés: GET /nodeapp:2000 HTTP/1.1, upstream: 127.0 .0.1:80/nodeapp:2000, gazdagép: www.app.pajasa.com 02.06.2018
  • Köszi .. Most is ugyanezt tette a hiba: [hiba] 2476#2476: *1 connect() sikertelen (111: Kapcsolat megtagadva) upstreamhez való csatlakozáskor, kliens: 175.100.142.211, szerver: app.pajasa.com, kérés : GET /nodeapp:2000 HTTP/1.1, upstream: 127.0.0.1:2000/nodeapp:2000, házigazda: www.app.pajasa.com 02.06.2018
  • Sajnáljuk, de nem, nem jól csinálod, a következőt kéred: /nodeapp:2000, ami nem érvényes. csak kérje: http://localhost/nodeapp nincs szüksége 2000-re sehova, az Nginx kezeli helyetted a porttovábbítást, ez az nginx használatának lényege 02.06.2018
  • A hiba most a következő: 3026#3026: *765 A 768 worker_connections nem elegendő, ha upstreamhez csatlakozik, kliens: 127.0.0.1, szerver: app.pajasa.com, kérés: GET /nodeapp:2000 HTTP/1.1, upstream: 127.0.0.1:80/nodeapp:2000, gazdagép: www.app.pajasa.com 02.06.2018
  • A csomópontszerver fut? tegye újra a teljes nginx konfigurációt, és ellenőrizze, hogy az alkalmazás fut-e: curl http://localhost:2000 mit ad ki? 02.06.2018
  • A konfigurációd rossz, elolvastad a válaszomat? proxy_pass http://localhost:2000 02.06.2018

  • 2

    proxy_pass http://localhost:2000/nodeapp;

    Az URL-séma hibás, mindig a PROTO://DOMAIN:PORT/PATH

    02.06.2018
  • Módosítva , De most a hiba alá kerül: [figyelmeztetés] 2367#2367: *2293 A 768 worker_connections nem elegendő az upstreamhez való csatlakozáskor, kliens: 127.0.0.1, szerver: app.pajasa.com, kérés: GET /nodeapp:2000 HTTP/ 1.1, upstream: 127.0.0.1:80/nodeapp:2000, gazdagép: www.app. pajasa.com 02.06.2018

  • 3
        listen 2000;
    

    Az nginxnek nem szabad az alkalmazásportra figyelnie. Ebben az esetben az nginx önmagát rekurzívan hívja.

    02.06.2018
  • Köszönöm , megjegyzést fűztem hozzá, és a proxy jelet is megváltoztattam a proxy_pass localhost/nodeapp-ra; most hiba érkezik erre: [figyelmeztetés] 2367#2367: *2293 A 768 worker_connections nem elegendő a upstreamhez való csatlakozáskor, kliens: 127.0.0.1, szerver: app.pajasa.com, kérés: GET /nodeapp:2000 HTTP/ 1.1, upstream: 127.0.0.1:80/nodeapp:2000, gazdagép: www.app. pajasa.com 02.06.2018
  • Új anyagok

    A rádiógomb ellenőrzött eseményének használata a jQueryben
    Ebben a cikkben látni fogjuk, hogyan kell dolgozni a jquery választógombbal ellenőrzött eseményeivel. A választógombok HTML gombok, amelyek segítenek kiválasztani egyetlen értéket egy csoportból...

    Körkörös függőségek megoldása terraformban adatforrásokkal – lépésről lépésre
    Mi az a körkörös függőségek Dolgozzunk egy egyszerű eseten, amikor az SQS-sor és az S3-vödör közötti körkörös függőség problémája van egy egymástól függő címkeérték miatt. provider..

    Miért érdemes elkezdeni a kódolást 2023-ban?
    01100011 01101111 01100100 01100101 — beep boop beep boop Világunk folyamatosan fejlődik a technológia körül, és naponta fejlesztenek új technológiákat a valós problémák megoldására. Amint..

    🎙 Random Noise #2  – Örökbefogadás és hit
    az analitika íratlan világának gondozása Szeretné, hogy ezek a frissítések a postaládájába kerüljenek? Iratkozzon fel itt . "Ha önvezető autókat gyártanak, akkor mi miért ne..

    A legrosszabb politika és prediktív modellek májátültetésre jelöltek számára az Egyesült Államokban
    A máj (vagy óangolul lifer) az emberi test legnehezebb belső szervére utal, amely csendesen működik a nap 24 órájában. Mit csinál a máj? 500 feladatot hajt végre a szervezet egészségének..

    5 webhely, amely 2022-ben fejleszti front-end fejlesztői készségeit
    Frontendmentor.io A tényleges projektek létrehozásával a Frontendmentor.io segítséget nyújt a front-end kódolási képességeinek fejlesztésében. A kódolást azután kezdheti meg, hogy..

    Mikor kell használni a Type-t az interfészhez képest a TypeScriptben?
    A TypeScript a JavaScript gépelt szuperkészlete, amely statikus gépelést ad a nyelvhez. Ez megkönnyíti a robusztus és karbantartható kód írását azáltal, hogy a hibákat a fordítási időben..