nginx: terhubung () gagal (111: Sambungan ditolak) saat menyambung ke hulu

16

Saya terus melihat pesan kesalahan di bawah ini di log kesalahan, saya dapat mengakses semua sumber daya tapi saya tidak yakin mengapa kesalahan menandai.

kesalahan:

[kesalahan] 13368 # 0: * 449 terhubung () gagal (111: Sambungan ditolak) saat menyambung ke hulu, klien: xxxx, server: myserver.com, permintaan: "DAPATKAN / cerita / tambang HTTP / 1.1", upstream: " http: // [:: 1]: 5000 / story / mine ", host:" myserver.com "

Konfigurasi Nginx saya

Saya melewati koneksi ke sebuah node.jscluster yang berjalan di port 5000. Tidak dapat melihat apa yang saya lewatkan?

upstream api {
    server localhost:5000;
}

server {
    listen 80; 
    server_name myserver.com;
    root /home/user/_api;


# Logging 

error_log /home/user/log/api.error.log notice;
    location / {
        proxy_redirect off;
        proxy_set_header   X-Real-IP            $remote_addr;
        proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
        proxy_set_header   X-Forwarded-Proto $scheme;
        proxy_set_header   Host                   $http_host;
        proxy_set_header   X-NginX-Proxy    true;
        proxy_set_header   Connection "";
        proxy_cache one;
        proxy_cache_key sfs$request_uri$scheme;
        proxy_pass         http://api;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }
}
Tam2
sumber
Ini tahun 2015 dan saya mengalami masalah yang sama. setiap kali pesan websocket dijatuhkan, kesalahan ini muncul di log.
r3wt

Jawaban:

19

Nginx terhubung ke nodjs pada loopback IPv6 [:: 1]. nodejs mungkin hanya mendengarkan di IPv4.

Coba pengaturan

upstream api {
    server 127.0.0.1:5000;
}
...
Christopher Perrin
sumber
Bagi mereka yang bingung, ganti localhostke127.0.0.1
kouton
Adakah ide jika saya memiliki 127.0.0.1 alih-alih localhost dan ini terus terjadi?
Ken
3
Anda harus memeriksa apakah layanan mendengarkan. Coba sudo netstat -pantudan lihat apakah layanan tersebut benar-benar mendengarkan di port.
Christopher Perrin
1
@ChristopherPerrin terima kasih atas saran itu. Itu membantu saya untuk menyadari bahwa salah satu kolam saya tidak mendengarkan pada port-nya, dan ternyata karena konfigurasi kolam lain menggunakan kembali nama yang sama sehingga menimpa konfigurasinya
Robbie Averill
@RobbieAverill senang mendengar bahwa jawaban ini masih membantu
Christopher Perrin