0、前言
最近忙着给服务器搬家,好不容易搬好了又不小心删了内核,全部重来。在使用宝塔一键迁移 API版本时,我发现迁移到新服务器,每个网站在创建的时候都会报错:
1 | nginx: [emerg] unknown "connection_upgrade" variable |
于是查找资料解决问题,在此记录一下。
2、解决方法
在NGINX的主配置文件中,加入:
1 | http { ... #以上省略默认配置,在最后加入以下代码即可 map $http_upgrade $connection_upgrade { default upgrade; '' close; } } |
作用就是映射connection_upgrade
变量为http_upgrade
变量。
3、出错原因
宝塔不知道在哪个版本,自作聪明给所有的反向代理都加了:
1 | proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $connection_upgrade; proxy_http_version 1.1; # proxy_hide_header Upgrade; |
以支持反代WebSocket连接,可能是防止小白跑到论坛去提问。
最后,建议所有的程序(NGINX,Apache,MySQL,PHP)全部都编译安装,最近听说宝塔编译安装会导致服务器被挂 马,甚至被入侵。
解决NGINX报错 connection_upgrade 未知变量
评论