一般设置代理只需按以下来设置是没有问题的,但是今天我们要操作的websockt
server { location / { proxy_pass http://127.0.0.1:10086; 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 REMOTE-HOST $remote_addr; proxy_http_version 1.1; proxy_read_timeout 300s; } }
nginx -t
一下
会出现如下错误:
nginx: [emerg] unknown "connection_upgrade" variable
就是这里出现了个坑
其中涉及到了一个nginx的设计问题 End-to-end and Hop-by-hop Headers
我在这里还是不过多赘述了,以免误人子弟
map在nginx中是为一个或多个变量设置映射表
下面是需要添加的几项配置:
http { map $http_upgrade $connection_upgrade { default upgrade; '' close; } server { location / { #… proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $connection_upgrade; } } }