历史版本6 :Nginx常见报错及解决方案 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 概述编辑

本文汇总使用 nginx 过程中常见报错及解决方案。

2. 示例编辑

2.1 Cannot read property 'length' of undefined

问题描述:

当用户不想要暴露自身服务器的地址时,通常会使用nginx反向代理服务器,使用过程中出现请求报错,如下图所示:

QQ截图20190929090207.png

原因分析:

该问题是由于 FineBI 默认的请求端口号为 48888(单机)或者 48889(集群),若 nginx 中配置的端口号不为该端口,则无法将信息转发到正确的请求端口上,因此需要在 FineBI 中将信息请求端口修改为与 nginx 中配置的一致。

解决方案:

1)参考 使用第三方管理软件连接报表内置 HSQL 数据库 FineDB 连接 FineDB 数据库,在数据库表 fine_conf_entity 加一下字段(或者改一下)WebSocketConfig.requestPort,将其修改为与 nginx 中配置的端口一致即可。比如 nginx 中的端口配置为 8089 ,则我们可修改WebSocketConfig.requestPort为 8089 ,如下图所示:

222

2)修改完成后重启 FineBI 即可。

2.2 permission denied

问题描述:

集群环境,有线网络正常,无线网络登录页面空白,但是节点可以正常登录。

日志文件如下图所示:

11.png

原因分析:

nginx 无权限读取数据流。

解决方案:

修改 nginx.conf ,将用户组改成 root ,并且取消注释。如下图所示:

1603095337682109.png

2.3 https protocol requires SSL

问题描述:

启动时报错:

nginx:[emerg]https protocol requires SSL support in /usr/nginx/conf/nginx.conf:39

原因分析:

nginx.conf 中配置了 https ,但 nginx 未配置 ssl 模块。

解决方案:

给 nginx 增加 ssl 模块,请参见 配置 SSL 证书实现 HTTPS 访问

2.4 nginx 编译缺乏依赖

问题描述:

报错:SSL modules require the OpenSSL library

如下图所示:

1603096371969177.png

原因分析:

nginx 在编译一些模块时,需要三个依赖库:prce、zlib、openssl

解决方案:

yum -y install gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel

2.5 nginx 入口访问平台空白

问题描述:

nginx 入口访问平台空白,日志显示写缓存文件失败,如下图所示:

13.png

解决方案:

如果启动 nginx 的用户有对应目录读写权限,则可能是磁盘空间不足引起,可用df -h指令查看。

nginx.conf 中关闭 acces.log ,避免日志过大,把磁盘空间占完。

2.6 集群环境/服务器经常出现卡慢

问题描述:

集群环境,服务器经常出现卡慢。

解决方案:

由于磁盘空间不足,nginx.conf 中关闭 acces.log ,避免日志过大,把磁盘空间占完。

2.7 nginx 配置外网后端口丢失

问题描述:

用户做了 Web 集群,现在做了外网映射,访问 URL 能登录到登录页面,但是点击登录之后,映射的端口号不见了,跳转之后就直接报 404 。

原因分析:

登陆跳转后,host 变动,导致端口丢失。

解决方案:

nginx 修改 head 的 host 字段(proxy_set_header Host)为实际外部访问的地址,如下图所示:

14.png