Điểm:0

Không thể thiết lập kết nối wss [React + ASP.NET Core, SignalR + nginx]

lá cờ bq

Tôi có ứng dụng React giao tiếp với API lõi Asp.Net. Cả hai đều được triển khai trên Docker trên máy ảo của tôi. Nginx được cài đặt và định cấu hình để phân giải tên miền cho ứng dụng (thesis.uno - cho ứng dụng phản ứng, api.thesis.uno - cho api lõi asp.net)

Tôi đã thêm hỗ trợ trò chuyện vào ứng dụng của mình bằng SignalR, nhưng khi phản ứng cố gắng thiết lập kết nối wss thông qua api.thesis.uno thì không thành công nhập mô tả hình ảnh ở đây

Khi tôi thay thế tên miền api bằng VM ip và cổng, mọi thứ dường như hoạt động bình thường, điều đó có nghĩa là sự cố nằm ở cấu hình Nginx.

nhập mô tả hình ảnh ở đây

Tôi đã cố gắng tìm kiếm sự cố này trên google, nhưng dường như không có giải pháp nào giúp tôi (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)

Cấu hình nginx của tôi:

client_max_body_size 64M;

phụ trợ ngược dòng {
    # kích hoạt phiên cố định dựa trên IP
    ip_hash;

    máy chủ cục bộ: 5000;
  }

người phục vụ {
    gốc /var/www/thesis.uno/html; # Phục vụ trực tiếp mọi thứ trong thư mục chung của Rails
    chỉ mục index.html index.htm index.nginx-debian.html;
    server_name luận án.uno www.thesis.uno; # được quản lý bởi Certbot

    địa điểm / {
        proxy_pass http://localhost:5001;
        proxy_set_header Máy chủ lưu trữ $host;
    }

    nghe 443 ssl; # được quản lý bởi Certbot
    ssl_certificate /etc/letsencrypt/live/thesis.uno/fullchain.pem; # được quản lý bởi Certbot
    ssl_certificate_key /etc/letsencrypt/live/thesis.uno/privkey.pem; # được quản lý bởi Certbot
    bao gồm /etc/letsencrypt/options-ssl-nginx.conf; # được quản lý bởi Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # được quản lý bởi Certbot
}

người phục vụ {
    nếu ($host = www.thesis.uno) {
        trả lại 301 https://$host$request_uri;
    } # được quản lý bởi Certbot


    nếu ($host = luận án.uno) {
        trả lại 301 https://$host$request_uri;
    } # được quản lý bởi Certbot

    nghe 80 ;
    server_name luận án.uno www.thesis.uno;
    trả lại 404; # được quản lý bởi Certbot
}

người phục vụ {
    server_name api.thesis.uno www.api.thesis.uno;

    # tất cả các yêu cầu khác
    địa điểm / {
        proxy_pass http://phụ trợ;
        proxy_set_header Máy chủ lưu trữ $host;
    }

    # yêu cầu trò chuyện ổ cắm web
    vị trí /api/trò chuyện {
        proxy_pass http://phụ trợ;
        proxy_http_version 1.1;
        proxy_set_header Nâng cấp $http_upgrade;
        proxy_set_header Kết nối $http_connection;
        proxy_set_header Máy chủ lưu trữ $host;
        proxy_cache_bypass $http_upgrade;
    }

    nghe 443 ssl; # được quản lý bởi Certbot
    ssl_certificate /etc/letsencrypt/live/api.thesis.uno/fullchain.pem; # được quản lý bởi Certbot
    ssl_certificate_key /etc/letsencrypt/live/api.thesis.uno/privkey.pem; # được quản lý bởi Certbot
    bao gồm /etc/letsencrypt/options-ssl-nginx.conf; # được quản lý bởi Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # được quản lý bởi Certbot
}

người phục vụ {
    nếu ($host = www.api.thesis.uno) {
        trả lại 301 https://$host$request_uri;
    } # được quản lý bởi Certbot


    nếu ($host = api.thesis.uno) {
        trả lại 301 https://$host$request_uri;
    } # được quản lý bởi Certbot

    nghe 80;
    server_name api.thesis.uno www.api.thesis.uno;
    trả lại 404; # được quản lý bởi Certbot
}

CẬP NHẬT:

Hóa ra nginx có tệp nhật ký, có vẻ như nginx không thể chuyển hướng yêu cầu đúng cách, cung cấp 404 theo yêu cầu

nhập mô tả hình ảnh ở đây

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.