centos7下安装NGINX出现的问题 无法访问 或403 以及常用命令 因为本地服务器使用重新复习

安装完成后直接测试可用安装没问题就配置安装请看上篇NGINX安装

首先是配置 

centos7下安装NGINX出现的问题 无法访问 或403 以及常用命令 因为本地服务器使用重新复习

改成这样配置基本没问题接下来是端口的问题

一般选用80

查看指定TCP端口是否开启

firewall-cmd --zone=public --add-port=80/tcp --permanent

没开启


重载入添加的端口:
firewall-cmd --reload

centos7下安装NGINX出现的问题 无法访问 或403 以及常用命令 因为本地服务器使用重新复习
查询指定端口是否开启成功:
firewall-cmd --query-port=8848/tcp

centos7下安装NGINX出现的问题 无法访问 或403 以及常用命令 因为本地服务器使用重新复习

完成后如果出现403

可以先查看日志信息路径如下

/var/log/nginx/error.log

2020/11/19 15:39:09 [error] 4849#4849: *1 "/root/axs/vueData/index.html" is forbidden (13: Permission denied), client: ip, server: 192.168.3.86, request: "GET / HTTP/1.1", host: "ip"

访问被拒绝

一、由于启动用户和nginx工作用户不一致所致

1.1查看nginx的启动用户,发现是nobody,而为是用root启动的

 

命令:ps aux | grep "nginx: worker process" | awk'{print $1}'

 

centos7下安装NGINX出现的问题 无法访问 或403 以及常用命令 因为本地服务器使用重新复习

 

 

 

1.2将nginx.config的user改为和启动用户一致,

命令:vi conf/nginx.conf

 

 

二、缺少index.html或者index.php文件,就是配置文件中index index.html index.htm这行中的指定的文件。

1.    server {  

2.      listen       80;  

3.      server_name  localhost;  

4.      index  index.php index.html;  

5.      root  /data/www/;

6.    }

启动页面不存在 如果在/data/www/下面没有index.php,index.html的时候,直接文件,会报403 forbidden。

 

三、权限问题,如果nginx没有web目录的操作权限,也会出现403错误。

解决办法:修改web目录的读写权限,或者是把nginx的启动用户改成目录的所属用户,重启Nginx即可解决

1.    chmod -R 777 /data

2.    chmod -R 777 前端目录

 

四、SELinux设置为开启状态(enabled)的原因。

 

4.1、查看当前selinux的状态。

1.    /usr/sbin/sestatus

4.2、将SELINUX=enforcing 修改为 SELINUX=disabled 状态。

1.    vi /etc/selinux/config

2.     

3.    #SELINUX=enforcing

4.    SELINUX=disabled

4.3、重启生效。reboot。

1.    reboot

SELinux是Security Enhanced Linux的缩写,字面上的意思就是安全强化的Linux,它是由美国国家安全局 (NSA) 开发的,整合到Linux核心的一个模块,是对于强制访问控制(MAC)的实现,是 Linux历史上最杰出的新安全子系统,提供了比传统的UNIX权限更好的访问控制。在SELinux的访问控制体系的限制下,进程只能访问那些在他的任务中所需要文件。

2、SELinux 的启动、关闭和状态

并非所有的 Linux发行版都支持 SELinux 的,CentOS 5.x 以后就支持 SELinux了,目前 SELinux 支持三种模式:

  • enforcing:强制模式,表示SELinux 运行中,且已经正确的开始限制 domain/type 了;
  • permissive:宽容模式,表示SELinux 运行中,不过仅会有警告信息,并不会实际限制 domain/type 的存取。这种模式可以运来作为 SELinux 的 debug 之用;
  • disabled:关闭,SELinux 没有运行。

1)获取SELinux的状态

[[email protected] ~]# sestatus
SELinux status: enabled
SELinuxfs mount: /selinux
Current mode: enforcing
Mode from config file: enforcing
Policy version: 24
Policy from config file: targeted

2)获取SELinux运行模式

[[email protected] ~]# getenforce
Enforcing //当前的模式为 Enforcing

3)SELinux运行模式切换

[[email protected] ~]# setenforce [0|1]
选项与参数:
0:转成 Permissive 宽容模式;
1:转成 Enforcing 强制模式

[[email protected] ~]# setenforce 0
[[email protected] ~]# getenforce
Permissive

[[email protected] ~]# setenforce 1
[[email protected] ~]# getenforce
Enforcing

4)SELinux 的启动和关闭

由于SELinux 整合到Linux核心里了,如果由 enforcing 或 permissive模式改成 disabled,或由 disabled 改成其他两个,系统必须要重新启动;
在 SELinux运行(enforcing或permissive模式)时,只能在enforcing和permissive模式切换,不能够直接关闭 SELinux,只能通过修改配置文件,然后重启系统。
在 SELinux关闭(disabled)时,setenforce命令不能设置Enforcing或Permissive模式,只能通过修改配置文件来设置,然后重启系统。

[[email protected] ~]# vim /etc/selinux/config
SELINUX=enforcing                //默认为enforcing,可设置为enforcing、permissive、disabled中的一项。
SELINUXTYPE=targeted //目前只能设置成targeted、mls中的一项

注意:
1)如果从 disable 切换到enforcing或permissive模式时,由于系统必须要针对文档写入安全性本文的信息,因此开机过程会花费不少时间在等待重新写入 SELinux 安全性本文 (有时也称为 SELinux Label),而且在写完之后还得要再次的重新启动。
2)如果已经运行在Enforcing模式,但是可能由于SELinux的设置问题,导致某些服务无法正常的运行,此时可以将Enforcing 模式改为Permissive模式,让 SELinux只会警告无法顺利联机的信息,而不是直接阻挡主体程序的读取权限。

--------- CentOS 6.x 中 Nginx 的操作命令 ---------

# nginx                               // 不指定配置文件启动 Nginx,默认读取 /etc/nginx/nginx.conf 配置文件。
# nginx -c <配置文件>       // 指定配置文件启动 Nginx 。
# nginx -t                           // 测试配置文件是否有语法错误,通过这种方式,也就知道了默认配置文件是哪个文件。
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

# nginx -s reopen       // 重启 Nginx
# nginx -s reload        // 重新加载 Nginx 配置文件,然后以优雅的方式重启 Nginx 。
# nginx -s stop           // 强制停止 Nginx 服务
# nginx -s quit            // 优雅地停止 Nginx 服务(即处理完所有请求后再停止服务)


--------- CentOS 7.x 中 Nginx 的操作命令 --------- 

# systemctl start nginx.service            // 启动 Nginx 服务
# systemctl stop nginx.service            // 停止 Nginx 服务
# systemctl restart nginx.service        // 重启 Nginx 服务
# systemctl reload nginx.service        // 重新加载 Nginx 配置文件,然后以优雅的方式重启 Nginx 。
# systemctl status nginx.service        // 查看状态
# systemctl enable nginx.service       // 设置开机自启动
# systemctl disable nginx.service      // 停止开机自启动