Nginx的错误日志
错误背景:
配置服务器集群时,单个服务正常,但是放到nginx中访问不成功,前端报错如下截图,nginx中的错误日志如上截图;
错误分析:
两个Tomcat服务器在同一个服务器上面部署,端口号分别为8080和8081,单独访问是可以成功的,排除单个服务器出故障的可能性,那大概率就是nginx或者nginx所在服务器上面出错;
从日志中可以查看到大概有两种类型的错误信息,1是权限不够,2 是upstream没有成功访问到所指向的服务;
亲测解决方式:
问题1(可以直接先试问题2的解决方案是否可行):
不排除有的虚拟机是nginx在执行任务时没有获得到足够的权限,那就可以给nginx赋予足够权限
sudo vi /etc/sudoers
找到如下一行
root ALL=(ALL) ALL
直接拷贝一个属于nginx的 超级管理员权限
nginx ALL=(ALL) ALL
然后wq保存
保存之后让文件生效 sudo source /etc/sudoers
问题2
原因是SELinux限制了nginx对外访问的权限,按照如下操作设置允许远程网络连接,以上两个错误我是用下面的操作解决的;
查网络访问的配置
getsebool -a | grep httpd_can_network_connect
如果结果如下
httpd_can_network_connect --> off
则执行如下命令打开:
#SELinux命令,临时配置,重启后失效
setsebool httpd_can_network_connect=1
写入配置文件的命令,重启后保留
setsebool -P httpd_can_network_connect 1 推荐这种方式