zoukankan      html  css  js  c++  java
  • centos nginx配置支持WebSocket(signalR)

    signalr 默认会调用websocket去连接集线器,centos下,用nginx默认设置不支持ws的

    所以,必须更改配置,让nginx通过websocket

     server {
        listen 80;
        server_name admin.mu-booking.com; 
        location / {
            proxy_pass http://127.0.0.1:5000; 
            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;
        }
        }

    但是,这样问题就来了。ws的服务可以执行了。ajax的请求却不适合,毕竟ws需要的是长连接,ajax的只是短暂的,有返回后连接是会关闭的

    所以,应该设置多个路径

    server {
        listen 80;
        server_name admin.mu-booking.com; 
        location / {
            proxy_pass http://127.0.0.1:5000; 
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection keep-alive;
            proxy_set_header Host $host;
            proxy_cache_bypass $http_upgrade;
        }
        location ~/Hub {
            proxy_pass http://127.0.0.1:5000; 
            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;
        }
        }

    关键 

    proxy_set_header Connection upgrade,
    默认key-alive的,改成upgrade

    ~/Hub这个路径,这个对应signalr设置的路径
    
    
  • 相关阅读:
    linux 系统层/用户层资源使用信息监控
    人工神经网络学习
    刷题
    使用机器学习进行气象数据分析
    kaggle 从零开始记录遇到的问题
    大数据平台资料收集
    MacOS应用cocoa application问题
    Latex学习手记(持续更新)
    Matplotlib折线图
    Android的系统架构——安卓运行库
  • 原文地址:https://www.cnblogs.com/drek_blog/p/10823020.html
Copyright © 2011-2022 走看看