Permission denied权限不足,主要有以下原因:

(一)端口小于1024

当端口小于1024时,且账户不是 root 会报错

解决方案: 切换 root 账户进行nginx配置

(二)端口大于1024

主要原因是因为selinux影响端口的开放,系统默认是开启的selinux;

Selinux到底是什么?

2.1 方案1:关闭selinux

# 查看selinux状态
getenforce
# 临时关闭selinux
setenforce 0   # 0关闭 1开启
# 永久关闭
## 修改selinux配置文件
vi  /etc/selinux/config
## 修改如下
SELINUX=enforcing  ===》  SELINUX=disabled
# 配置模式说明:
## SELinux服务有三种配置模式:
##  enforcing:强制启用安全策略模式,将拦截服务的不合法请求。
##  permissive:遇到服务越权访问时,只发出警告而不强制拦截。
##  disabled:对于越权的行为不警告也不拦截。

# 查看结果
[root@root]# getenfoce
Enforcing  #开启中

#友情提示:设置完成之后,重启nginx服务,即可使用端口

2.2 方案2:selinux强制添加端口

# 安装selinux工具:semanage
yum install -y semanage
## 友情提示:如果没有安装包,则使用方式2:  yum provides semanage 安装 
## 或者方式3:yum -y install policycoreutils-python.x86_64

# 查看所有开放的端口
semanage port -l
# 查看所有开放的[http服务端口]
semanage port -l | grep http_port_t
http_port_t                    tcp      80, 81, 443, 488, 8008, 8009, 8443, 9000
pegasus_http_port_t            tcp      5988

# 查看某个端口是否开放
semanage port -l | grep [端口号]

# 添加端口
semanage port -a -t http_port_t -p tcp [端口号]
## 参数说明:-a表示添加,-t表示类型也就是http_port_t,-p表示协议也就是tcp协议

# 删除端口
semanage port -d -t http_port_t -p tcp [端口号]
## 参数说明: -d表示删除,-t表示类型也就是http_port_t,-p表示协议也就是tcp协议


Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐