文档说明
记录项目使用中遇到的一些问题,会不断更新。
常见问题
文件超限:nginx 413 Request Entity Too Large
原因是因为Nginx默认上传限制为1m,解决方式是在nginx的http节点中加入以下内容:
1 | client_max_body_size 200m; |
同一个服务器上不同tomcat的session互相覆盖
导致两个系统不能同时使用session进行登录,现象是一个系统登录后,登录第二个系统,第一个系统会掉线,如manager和public不能同时登录。可参考同一个IP(服务器)多个Tomcat产生session覆盖问题记录。
invalid PID number
1 | nginx: [error] invalid PID number "" in "/usr/local/nginx/logs/nginx.pid" |
解决方法:
[root@localhost nginx]/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
Nginx 504 Gateway Time-out
1.问题定位
初步以为是Nginx配置问题。
在nginx.conf中增加配置:
1 | fastcgi_connect_timeout 300; |
重启Nginx后,这个错误仍然存在。想到可能是服务有问题,遂查看tomcat日志。
发现 tomcat IOException 断开的管道
这个错误。
再查看catalina.out
日志文件,发现如下error:
1 | org.apache.http.conn.ConnectTimeoutException: Connect to 61.190.70.197:8800 [/61.190.70.197] failed: connect timed out |
想到以前部署过的微信公众号系统,猜想应该是服务器无法访问外网第三方服务导致。
后面部署的微信公众号服务同样需要访问微信的API。
也可能是数据时间错乱的原因。
应用服务器集群之间时间不同步,解决方式是应用服务器集群间利用ntp服务进行时钟同步。
2.解决方式
需要放开服务器访问外网的限制;
通过配置服务器访问外网的策略,问题暂时解决。
后面需要针对特别的服务做放行策略。
nginx: [emerg] unknown directive “ssl”
缺少module。原因是编译时未带上这个module的参数。
解决方式:
- 1.在初始编译时加上参数;
- 2.后面追加参数,重新编译。
方式2说明:
- A.进入安装目录,
cd /usr/local/nginx-1.15.9
; - B.执行
./configure --with-http_ssl_module
; - C.执行
make
,不要执行make install
; - D.执行
cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak
,覆盖备份文件。注意提示overwrite xxx ?
,输入Y,表示同意覆盖; - E.新编译的nginx,覆盖原安装目录。执行
cp objs/nginx /usr/local/nginx/sbin/nginx
; - 测试。执行
/usr/local/nginx/sbin/nginx -t
。
- 本文作者: Linking
- 本文链接: https://linking.fun/2019/08/26/Nginx常见问题记录/
- 版权声明: 版权所有,转载请注明出处!