Nginx设置websocek代理服务

nginx.conf配置文件

worker_processes 1;
error_log logs/error.log;

events {
     worker_connections 1024;
}

http {
    log_format  main '$remote_addr - $remote_user [$time_local] "$request" "$http_host" '
    '$status $body_bytes_sent "$http_referer" '
    '"$http_user_agent" "$request_time" "$ssl_protocol" "$ssl_cipher" "$http_x_forwarded_for" '
    '"$upstream_addr" "$upstream_status" "$upstream_response_length" "$upstream_response_time"';

    access_log  ./logs/gateway_access.log  main;

    map $http_upgrade $connection_upgrade {
        default upgrade;
        '' close;
    }

    server {
        listen 10090;
        location /ws-test {
            proxy_pass http://127.0.0.1:10091;
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection $connection_upgrade;
            proxy_set_header Host $host;
        }
    }

    server {
        server_name 0.0.0.0;
        listen 10091;
        location /ws-test {
            default_type text/html;
	    return 200 '<html><body>Websocket test successfully!</body></html>';
        }
    }
}

curl命令测试

curl --include \
     --no-buffer \
     --header "Connection: Upgrade" \
     --header "Upgrade: websocket" \
     --header "Host: websocket-test.com:80" \
     --header "Sec-WebSocket-Key: SGVsbG8sIHdvcmxkIQ==" \
     --header "Sec-WebSocket-Version: 13" \
     http://127.0.0.1:10090/ws-test/

参考:
1.nginx支持ws反向代理
2.Websocket Proxy

上一篇:有关pip指令报错


下一篇:关于responseBody注解中文乱码的问题解决