飞牛公网访问403 记录

35 阅读1分钟

分析

1. 查看容器日志

sudo docker logs subcatcher-aesthetic

2. 查看 nginx 错误日志

sudo docker exec subcatcher-aesthetic cat /var/log/nginx/error.log

3. 确认文件存在

sudo docker exec subcatcher-aesthetic ls -la /usr/share/nginx/html/

4. 测试 nginx 配置

sudo docker exec subcatcher-aesthetic nginx -t

5. 检查宿主机权限

sudo ls -la /应用目录/dist/

image.png

原因:

open() "/usr/share/nginx/html/index.html" failed (13: Permission denied)

解决方案1

1. 停止容器

sudo docker stop subcatcher-aesthetic

2. 修复权限

sudo chmod -R 755 /应用目录/dist/

3. 启动容器

sudo docker start subcatcher-aesthetic

4. 查看是否还有错误

sudo docker logs subcatcher-aesthetic --tail 20

解决方案 2:修改 docker-compose.yml 的用户设置

services: subcatcher: image: nginx:alpine container_name: subcatcher-aesthetic user: "1001:1001" # 改为匹配文件所有者的 UID restart: always ports: - "8080:80" volumes: - ./dist:/usr/share/nginx/html:ro - ./nginx.conf:/etc/nginx/conf.d/default.conf:ro environment: - TZ=Asia/Shanghai networks: - subcatcher-net

sudo docker-compose down sudo docker-compose up -d