Nginx反向代理中的深坑
今天完成了一个人脸识别系统的开发,在开发环境中调试好之后打算部署到服务器上。由于系统需要调用用户摄像头,只能使用https协议访。而我自己的域名没有在公安局备份(人在境外,比较麻烦),没办法申请SSL证书。于是我借了朋友的一台备案过的服务器,在他的服务器上用Nginx帮我转发一下。但是我在我部署好后端项目之后发现系统功能报错,但是同样的代码在开发环境中完全没有问题,经过排查之后发现是用户Token丢失。于是乎想到了肯定是Nginx的锅,搜索了一些资料和文档后,才知道Nginx进行代理时,有一个默认的参数:underscores_in_headers,这个参数的作用是是否转发header,默认为false。因此如果不带上的话,在转发之后header会被去掉。
重新配置Nginx:
server {
...
underscores_in_headers on;
...
}
完全解决!