Puncte:0

Nu se poate stabili conexiunea wss [React + ASP.NET Core, SignalR + nginx]

drapel bq

Am aplicația React care vorbește cu API-ul de bază Asp.Net. Ambele sunt implementate pe Docker pe VM-ul meu. Nginx este instalat și configurat pentru a rezolva numele de domenii pentru aplicație (thesis.uno - pentru aplicația react, api.thesis.uno - pentru api de bază asp.net)

Am adăugat suport pentru chat la aplicația mea folosind SignalR, dar când react încearcă să stabilească o conexiune wss prin api.thesis.uno, nu reușește introduceți descrierea imaginii aici

Când înlocuiesc numele de domeniu api cu ip și portul VM, totul pare să funcționeze corect, ceea ce înseamnă că problema este în configurația Nginx.

introduceți descrierea imaginii aici

Am încercat să caut pe Google această problemă, dar nicio soluție nu părea să mă ajute (https://stackoverflow.com/questions/48300288/signalr-in-asp-net-core-behind-nginx, https://stackoverflow.com/questions/12102110/nginx-to-reverse-proxy-websockets-and-enable-ssl-wss)

Configurația mea nginx:

client_max_body_size 64M;

backend în amonte {
    # activați sesiunea sticky bazată pe IP
    ip_hash;

    server localhost:5000;
  }

Server {
    root /var/www/thesis.uno/html; # Servește direct orice în folderul public Rails
    index index.html index.htm index.nginx-debian.html;
    nume_server thesis.uno www.thesis.uno; # gestionat de Certbot

    Locație / {
        proxy_pass http://localhost:5001;
        proxy_set_header Gazdă $gazdă;
    }

    asculta 443 ssl; # gestionat de Certbot
    ssl_certificate /etc/letsencrypt/live/thesis.uno/fullchain.pem; # gestionat de Certbot
    ssl_certificate_key /etc/letsencrypt/live/thesis.uno/privkey.pem; # gestionat de Certbot
    includ /etc/letsencrypt/options-ssl-nginx.conf; # gestionat de Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # gestionat de Certbot
}

Server {
    dacă ($gazdă = www.thesis.uno) {
        returnează 301 https://$host$request_uri;
    } # gestionat de Certbot


    if ($gazdă = teză.uno) {
        returnează 301 https://$host$request_uri;
    } # gestionat de Certbot

    asculta 80 ;
    nume_server thesis.uno www.thesis.uno;
    întoarce 404; # gestionat de Certbot
}

Server {
    nume_server api.thesis.uno www.api.thesis.uno;

    # toate celelalte solicitări
    Locație / {
        proxy_pass http://backend;
        proxy_set_header Gazdă $gazdă;
    }

    # solicitări de chat cu socket web
    locație /api/chat {
        proxy_pass http://backend;
        proxy_http_versiunea 1.1;
        proxy_set_header Actualizare $http_upgrade;
        proxy_set_header Conexiune $http_connection;
        proxy_set_header Gazdă $gazdă;
        proxy_cache_bypass $http_upgrade;
    }

    asculta 443 ssl; # gestionat de Certbot
    ssl_certificate /etc/letsencrypt/live/api.thesis.uno/fullchain.pem; # gestionat de Certbot
    ssl_certificate_key /etc/letsencrypt/live/api.thesis.uno/privkey.pem; # gestionat de Certbot
    includ /etc/letsencrypt/options-ssl-nginx.conf; # gestionat de Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # gestionat de Certbot
}

Server {
    dacă ($gazdă = www.api.thesis.uno) {
        returnează 301 https://$host$request_uri;
    } # gestionat de Certbot


    if ($gazdă = api.thesis.uno) {
        returnează 301 https://$host$request_uri;
    } # gestionat de Certbot

    asculta 80;
    nume_server api.thesis.uno www.api.thesis.uno;
    întoarce 404; # gestionat de Certbot
}

ACTUALIZAȚI:

S-a dovedit că nginx are un fișier jurnal, se pare că nginx nu poate redirecționa corect cererea, dă 404 la cerere

introduceți descrierea imaginii aici

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.