Nginx支持websocket

时间:2025-03-19 20:40:30

通过配置使Nginx支持websocket代理。

一、http配置

配置map模块。

http {
    include       /etc/nginx/;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/  main;

    sendfile        on;

    keepalive_timeout  65;
    client_max_body_size 600m;

    #增加一下配置
    map $http_upgrade $connection_upgrade {
      default upgrade;
      ''   close;
    }

    include /etc/nginx//*.conf;
}

二、location配置

设置Upgrade和Connection两个消息头。

        location / {
				#增加以下两行配置
                proxy_set_header Upgrade $http_upgrade;
                proxy_set_header Connection $connection_upgrade;
				
                proxy_redirect off;
                proxy_set_header Host $host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header X-Forwarded-Proto https;
                proxy_pass http://xxx:8080;
        }