部署后项目500的原因
前置情况
bash
[root@localhost kms8.113]# pwd
/usr/kms8.113
[root@localhost kms8.113]# cat docker-compose.yml
下面是docker-compose.yml 对应nginx容器配置
kms-nginx:
image: nginx:latest
volumes:
- ./kms-nginx/html:/usr/share/nginx/html:ro
- ./kms-nginx/nginx.conf:/etc/nginx/conf.d/default.conf:ro
- ./kms-nginx/logs:/var/log/nginx
restart: always
ports:
- "80:80"
nginx的html对应文件
bash
ls -la ./kms-nginx/html/
总用量 0
drwxr-xr-x 6 root root 66 6月 3 09:37 .
drwx------ 4 root root 109 6月 3 09:47 ..
drwxr-xr-x 4 197610 197610 95 6月 2 10:23 sigk
drwxr-xr-x 4 root root 76 4月 30 09:46 sigk20260602
drwx------ 3 root root 93 6月 3 09:36 v2
drwxrwxrwx 3 root root 93 6月 2 11:14 v220260603
nginx对应的配置
bash
server {
listen 80;
server_name localhost;
#v1
location / {
alias /usr/share/nginx/html/sigk/; # 使用 alias 更直观
index index.html;
try_files $uri $uri/ /sigk/index.html;
}
# v2
location /v2/ {
alias /usr/share/nginx/html/v2/;
index index.html;
try_files $uri $uri/ /v2/index.html;
}
# v1接口代理
location /dev-api/ {
proxy_pass http://10.168.9.22:9088/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
# v2接口代理
location /api-sigk/ {
proxy_pass http://10.168.9.22:9087/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
最终部署后出错
项目nginx里面部署两个项目,sigk表示v1项目,v2里面是v1项目升级又一个项目,宿主机器默认80,访问v1项目前端直接跳转v2项目初始化页面,但是v2没有权限,导致无法访问

二、ls -la 命令输出的每一列含义
部署nginx对应文件 示例
bash
ls -la ./kms-nginx/html/
总用量 0
drwxr-xr-x 6 root root 66 6月 3 09:37 .
drwx------ 4 root root 109 6月 3 09:47 ..
drwxr-xr-x 4 197610 197610 95 6月 2 10:23 sigk
drwxr-xr-x 4 root root 76 4月 30 09:46 sigk20260602
drwx------ 3 root root 93 6月 3 09:36 v2
drwxrwxrwx 3 root root 93 6月 2 11:14 v220260603
**第一列:**文件类型和权限(以第五行 v2目录 解释)
权限格式说明
drwx------ 有10个字符,含义如下:
| 位置 | 含义 | 示例值 |
|---|---|---|
| 第1位 | 文件类型 | d=目录, -=文件, l=软链接 |
| 第2-4位 | 所有者权限 | rwx=读写执行 |
| 第5-7位 | 用户组权限 | ---= 无任何权限 |
| 第8-10位 | 其他用户权限 | ---= 无任何权限 |
插播理解一下,所有者,用户组和其它用户
所有者(u): 创建文件的用户
所属组 (g):与所有者同组的用户
其他用户 (o):既不是所有者也不在所属组
d rwx --- ---
│ │ │ │
│ │ │ └── 其他用户权限:无任何权限
│ │ └─────── 所属组权限:无任何权限
│ └──────────── 所有者(root)权限:读、写、执行
└─────────────── 文件类型:目录
插播权限数字表示法
r read 读 4
w write 写 2
x execute 执行 1

第二列: 硬链接数(以第五行 v2目录 解释)
3
对于目录,通常表示该目录下的子目录数量(包含 . 和 ...)
第三列: 文件所有者的用户名或UID (以第五行 v2目录 解释)
root
第四列: 文件所属组的组名或GID(以第五行 v2目录 解释)
root
第五列: 文件大小(字节)(以第五行 v2目录 解释)
93
普通文件是实际字节数;目录通常是 4096 或更小(如这里的 93 表示元数据大小)
第六列: 最后修改时间 (以第五行 v2目录 解释)
6月 3 09:36
月、日、时间(如果文件旧会显示年份)
第七列: 文件名
v2
二、chmod
bash
chmod 755 /usr/kms8.113/kms-nginx/html/v2
# 修复 v2 目录下所有文件的权限(让所有用户可读)
chmod -R 755 ./kms-nginx/html/v2/
chmod 是 Linux/Unix 系统中的命令,全称是 Change Mode(改变模式),用于修改文件或目录的权限。
三、总结
解决 Permission denied
为什么 v2 目录权限不对?
可能原因:
使用 root 用户创建,但没有给其他用户授权
从别处复制过来时保留了原始权限(我是把原来v2 文件直接重命名 v220260603,把dist重命名v2,哈哈里面各自权限还是原始的)
解压或移动文件时没有指定正确的权限
自己菜的一笔