记录:将网页文件交给nginx遇到的一些小问题

系统版本:Centos 7.9

问题一、访问网页出现403错误

403是指没有权限,我的问题是将网页文件放到了另一个用户junlin623的家目录下,那么nginx中的nginx用户是无权访问junlin623的家目录的,所以就会出现这个报错

前置:

nginx中的工作进程使用的是nginx用户

可以通过查看nginx.conf配置文件验证:

user nginx; 用于指定 nginx 进程的运行用户。这个指令的作用是为了提高安全性,避免 nginx 进程使用 root 用户身份运行,一旦 nginx 进程受到攻击,攻击者就可以获得 root 权限,造成更加严重的后果。

解决方案:

方案一:

junlin623用户允许其他用户访问自己的家目录(直接给网页文件更改权限是没用的)

chmod o+x /home/junlin623

这个操作是很不安全的

方案二:

将网页文件放到其他用户家目录之外的地方,我这里就直接放到/html目录下了
然后需要给html提权,让nginx用户可以访问到:chmod 777 -R /html


问题二:"xxx is not in the sudoers file. This incident will be reported"

普通用户用sudo执行命令时报 "xxx is not in the sudoers file. This incident will be reported"错误,原因是创建完用户之后没有给他授予执行sudo的权限

查看/etc/sudoers文件:

user ALL=(ALL) ALL 允许用户user执行sudo命令提权(需要输入密码)
%users ALL=(ALL) ALL 允许用户组users中的用户执行sudo命令提权(需要输入密码)
user ALL=(ALL) NOPASSWORD:ALL 允许用户user执行sudo命令提权(不需要输入密码)
%users ALL=(ALL) NOPASSWORD:ALL 允许用户组users中的用户执行sudo命令提权(不需要输入密码)

我们可以直接将junlin623用户添加到wheel组中(在root用户下执行)

usermod -aG wheel junlin623

或者在 /etc/sudoers文件中添加一行:

注意:这个文件只有读权限,可以使用visudo命令打开该文件

junlin623  ALL=(ALL)  ALL

问题三、Linux普通用户无法直接操作docker

   sudo usermod -aG docker $USER  # 将当前用户添加到docker组中即可

问题四、Linux环境下Nginx不支持中文资源访问

1、 确定你的系统是UTF编码

[root@localhost ~]# echo $LAGN
en_US.UTF-8

2、nginx配置文件设置:

3. 将网页目录下的所有的非UTF-8编码转换为UTF-8编码

安装convmv,由他去转换编码:

yum install -y convmv

/html(我的网页文件存放位置)目录下的所有文件转换编码

# 其中-f是源编码,-t是目标编码,-r是递归处理目录,–notest是不移动,实际上对文件进行改名。
convmv -f GBK -t UTF8 -r --notest /html

转换前:

转换后:

参考链接:

运维排查篇 | 访问nginx出现403错误
linux下nginx不支持中文URL路径的解决方案

posted @ 2024-01-06 20:39  junlin623  阅读(34)  评论(0编辑  收藏  举报