Puncte:0

Aplicația web dotnet core nu poate ajunge la SQL Server la distanță

drapel tm

Am o configurare cu o aplicație web dotnet core. Este implementat într-o VM Azure care rulează Ubuntu. Web-ul este servit în nginx. Această aplicație web particulară accesează o serie de baze de date diferite. Una dintre aceste conexiuni nu funcționează atunci când soluția este implementată pe VM. Iată câteva detalii:

  • SQL Server nu rulează pe portul implicit 1433, ci în schimb 15333 - nu am controlul asupra acestui server, așa că schimbarea portului nu este o opțiune
  • Pe laptopul meu de dezvoltator, șirul de conexiune la acest server SQL funcționează - extragerea datelor funcționează conform așteptărilor.
  • Din Azure Ubuntu VM pot face un telnet la SQL Server (telnet IP 15333). Primesc un răspuns „Conectat la IP”.
  • Conexiunile la alte baze de date (Oracle, alte baze de date SQL Server (care rulează pe 1433)), funcționează bine în aplicație.
  • Toate bazele de date (funcționează și cea care nu funcționează) sunt în același domeniu de rețea ca laptopul meu de dezvoltator.

Deci sunt puțin confuz în ceea ce privește problema. Când vă conectați la serverul SQL problematic, conexiunea expiră după 30 de secunde (implicit). Ar fi de așteptat un răspuns aproape imediat dacă lucrurile ar funcționa conform așteptărilor.

Configurația nginx arată astfel:

utilizator www-date;
worker_proceses auto;
pid /run/nginx.pid;
includ /etc/nginx/modules-enabled/*.conf;

evenimente {
        conexiuni_muncitor 768;
        # multi_accept on;
}

http {

        ##
        # Setări de bază
        ##

        sendfile activat;

        includ /etc/nginx/mime.types;
        aplicație de tip_default/octet-stream;

        ##
        # Setări de înregistrare
        ##

        access_log /var/log/nginx/access.log;
        error_log /var/log/nginx/error.log;

        ##
        # Configurații gazdă virtuală
        ##

        includ /etc/nginx/conf.d/*.conf;

        Server {
                asculta 80;

                Locație / {
                        proxy_pass http://localhost:5000;
                        proxy_http_versiunea 1.1;
                        proxy_set_header Actualizare $http_upgrade;
                        proxy_set_header Menținerea conexiunii;
                        proxy_set_header Gazdă $gazdă;
                        proxy_cache_bypass $http_upgrade;
                        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                        proxy_set_header X-Forwarded-Proto $schema;
                }
        }
}

Alergare starea ufw imi da:

La Acțiune De la
-- ------ ----
Nginx HTTP ALLOW oriunde
443/tcp ALLOW Oriunde
80/tcp PERMITERE oriunde
20:21/tcp PERMITERE oriunde
30000:31000/tcp PERMITERE oriunde
OpenSSH ALLOW oriunde
14431/tcp ALLOW oriunde
14431 PERMITERE oriunde
1433 PERMITĂ Oriunde
Nginx HTTP (v6) PERMITERE oriunde (v6)
443/tcp (v6) PERMITERE oriunde (v6)
80/tcp (v6) PERMITERE oriunde (v6)
20:21/tcp (v6) PERMITERE oriunde (v6)
30000:31000/tcp (v6) PERMITERE oriunde (v6)
OpenSSH (v6) ALLOW Anywhere (v6)
14431/tcp (v6) PERMITERE oriunde (v6)
14431 (v6) PERMITERE oriunde (v6)
1433 (v6) PERMITERE oriunde (v6)

Care ar putea fi problema aici? Orice indicii despre cum să diagnosticați problema ar fi apreciat.

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.