Starting nginx: nginx: [emerg] bind() to 0.0.0.0:8091 failed (13: Permission denied)

Starting nginx: nginx: [emerg] bind() to 0.0.0.0:8091 failed (13: Permission denied)




nginx 启动失败,日志里面报错信息如下:


 Starting nginx: nginx: [emerg] bind() to 0.0.0.0:8095 failed (13: Permission denied)


权限拒绝,经检查发现是开启selinux 导致的。 直接关闭


getenforce   这个命令可以查看当前是否开启了selinux 如果输出 disabled 或 permissive 那就是关闭了
如果输出 enforcing 那就是开启了 selinux


1、临时关闭selinux


setenforce 0            ##设置SELinux 成为permissive模式
setenforce 1    ##设置SELinux 成为enforcing模式


2、永久关闭selinux,


修改/etc/selinux/config 文件
将SELINUX=enforcing改为SELINUX=disabled

重启机器即可

Tags: selinux , nginx绑定端口失败

### Nginx 绑定端口 8809 权限被拒绝解决方案 当遇到 `nginx: [emerg] bind() to 0.0.0.0:8809 failed (13: Permission denied)` 错误时,这通常意味着当前用户没有足够的权限来绑定该端口。对于低于 1024 的端口确实需要 root 权限才能绑定,但对于高于 1024 的端口(如 8809),理论上不需要特殊权限。 #### 方法一:确认 SELinux 设置 如果服务器启用了 SELinux,则可能阻止 Nginx 绑定指定端口。可以通过命令`getenforce`查看 SELinux 状态[^2]。如果是 Enforcing 模式,建议将其暂时设为 Permissive 或永久禁用: - **临时关闭**:执行 `setenforce 0` - **永久关闭**:编辑 `/etc/selinux/config` 文件中的 `SELINUX=enforcing` 修改为 `SELINUX=disabled` #### 方法二:验证端口占用情况 即使选择了非特权端口(>1024),仍需确保目标端口未被其他程序使用。可利用如下命令检测并清理冲突的服务: ```bash netstat -anp | grep :8809 ``` 如果有任何进程正在使用此端口,请终止它们后再尝试启动 Nginx。 #### 方法三:赋予适当权限给 Nginx 进程 若上述两种方式未能解决问题,考虑调整 Nginx 可执行文件的权限属性,使其能够获得更高的访问级别而无需每次都以超级管理员身份运行: ```bash cd /usr/local/nginx/sbin/ chown root nginx chmod u+s nginx ``` 这些操作会使得 Nginx 在启动时自动获取提升后的权限,从而顺利完成端口绑定过程[^3]。 #### 方法四:检查防火墙配置 有时防火墙也会阻挡特定端口的数据传输请求。因此还需要核查 iptables 或 firewalld 中关于 TCP/UDP 流量过滤策略是否允许外部连接至本地 8809 端口。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值