Nginx启动报错:nginx: [emerg] bind() to 0.0.0.0:446 failed (13: Permission denied)

羌俊恩 社区创始人
优质创作者: 运维技术领域
领域专家: 操作系统技术领域
2023-02-04 00:35:41

一、问题描述:

某次用户权限切换过程中,使用普通用户重启nginx过程中报错:

[warn] 11984#0: the "user" directive makes sense only if the master process runs with super-user privileges, ignored in /etc/nginx/nginx.conf:2
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: [emerg] bind() to 0.0.0.0:446 failed (13: Permission denied)
nginx: configuration file /etc/nginx/nginx.conf test failed

二、分析处理

1)初始根据判断,446端口为https配置,换衣修改ssl目录权限所致,但是普通用户确实已经有/etc/ssl的权限,不应该的;

2)相关经验表明:nginx: [emerg] bind() to 0.0.0.0:446 failed (13: Permission denied),是因为小于1024的端口无法用普通用户权限启动,或要监听的端口不在http要求的端口列表,这通常伴随着你的系统启用了selinux,现场实际我们并没启用selinux,如果你的环境启用,可参考如下排查:

semanage port -l | grep http_port_t  #查看http允许监听的端口

  semanage port -a -t http_port_t -p tcp 446  #将你要监听的端口加入允许列表

完成后,重启nginx;

3)现场版本为:8.2p1,依赖于openssl 1.0.2k,后经测试该版本中正如报错中提示,nginx主进程master是不能被普通用户执行的,只能用root,worrker进程可使用普通用户运行,修改nginx.conf,修改用户为blue,root下重启nginx即可;
 

...全文
992 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

136,787

社区成员

发帖
与我相关
我的任务
社区描述
欢迎各位小伙伴积极活跃投稿,将日常IT打怪中遇到的问题,优秀解决方案,或自己的博客认为比较经典的文章分享到这里,共同营造一个悦享的问题库,Review及减少重复造车轮的无限循环,此致敬礼
devops经验分享开源 技术论坛(原bbs) 北京·西城区
社区管理员
  • 羌俊恩
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

本社区:旨在推进运维云化知识库建设,为更多运维提供参考及经验交流;加入社区的同学,如果运维工作中遇到问题或最后得到解决,有劳凑空发帖,分享共建FAQ社区。

得到解决方案的同学,请积极为发帖的同学点赞、评论、能力范围内打赏激励。另外本社区采用游戏修仙角色作为鼓励,对不同贡献者授予对应“勋章”。

最后祝愿社区繁荣昌盛,此致敬礼!!!

试试用AI创作助手写篇文章吧