Nginx使用账号nginx启动后后端Tomcat报错Broken pipe

背景:接到服务器安全问题整改要求,有基线问题需要修复,里面有nginx禁止使用root账号启动,需要修改成nobody或者nginx账号启动。

1、修改nginx.conf配置文件

我使用yum安装的nginx,目录是:/etc/nginx/nginx.conf

user nginx;

2、重新启动nginx

systemctl restart nginx

3、查看后端程序日志,发现部分接口调用失败,报错信息如下:

org.apache.catalina.connector.ClientAbortException: java.io.IOException: Connection reset by peer

org.apache.catalina.connector.ClientAbortException: java.io.IOException: Broken pipe


以上就是遇到的问题,下面是解决方案:

1、修改nginx用户到root组下

usermod -g root nginx

2、修改nginx程序所属用户和用户组

我使用yum安装的nginx,目录是:/usr/sbin/nginx

chown nginx:root nginx

3、找到nginx程序proxy目录

我使用yum安装的nginx,目录是:/var/lib/nginx/tmp/proxy

如果不是这个目录,可以使用find命令查找一下

find / -name proxy* -type d

4、修改proxy目录所属用户和用户组

chown -R nginx:root proxy

5、重新启动nginx

(1)检查nginx启动是否会报错

/usr/sbin/nginx -t

出现下面类似就是检查通过,可以重启nginx

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

(2) 重启nginx

systemctl restart nginx

6、检查是否配置Nginx账号锁定策略

passwd -S nginx

如果出现Password locked证明锁定成功,如果没有就执行nginx锁定

passwd -l nginx

至此,nginx基线禁止使用root后引发的问题处理完毕,查看后端程序日志未发现之前的报错日志,接口正常请求获取数据。

你可能感兴趣的:(问题处理,nginx,运维,user,nginx)