安装完成后直接测试可用安装没问题就配置安装请看上篇NGINX安装
首先是配置
改成这样配置基本没问题接下来是端口的问题
一般选用80
查看指定TCP端口是否开启
firewall-cmd --zone=public --add-port=80/tcp --permanent
没开启
重载入添加的端口:
firewall-cmd --reload
查询指定端口是否开启成功:
firewall-cmd --query-port=8848/tcp
完成后如果出现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}'
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的状态
[root@www ~]# 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运行模式
[root@www ~]# getenforce
Enforcing //当前的模式为 Enforcing
3)SELinux运行模式切换
[root@www ~]# setenforce [0|1]
选项与参数:
0:转成 Permissive 宽容模式;
1:转成 Enforcing 强制模式
[root@www ~]# setenforce 0
[root@www ~]# getenforce
Permissive
[root@www ~]# setenforce 1
[root@www ~]# getenforce
Enforcing
4)SELinux 的启动和关闭
由于SELinux 整合到Linux核心里了,如果由 enforcing 或 permissive模式改成 disabled,或由 disabled 改成其他两个,系统必须要重新启动;
在 SELinux运行(enforcing或permissive模式)时,只能在enforcing和permissive模式切换,不能够直接关闭 SELinux,只能通过修改配置文件,然后重启系统。
在 SELinux关闭(disabled)时,setenforce命令不能设置Enforcing或Permissive模式,只能通过修改配置文件来设置,然后重启系统。
[root@www ~]# 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 // 停止开机自启动