首页 > 解决方案 > “/var/www/html”的目录索引被禁止 docker/nginx 403 错误

问题描述

我想我已经在 docker-compose.yml 中构建的 nginx 配置中正确设置了所有内容。但是,从跟踪 nginx 日志中可以看出

*1 directory index of "/var/www/html/" is forbidden

这会导致 403 禁止页面。我想我已经正确设置了 www-data 用户的权限,但可能没有。

目录结构:

  src/
    - docker-compose.yml
    - .gitignore
    backend
        src
        - Dockerfile
        - package.json
        - .gitignore
    data
        nginx
        - nginx.conf
    frontend
        src
        - Dockerfile
        - package.json
        - .gitignore

码头工人撰写:

#docker-compose.yml

version: '3'

services:
  frontend:
    build: ./frontend
    volumes:
      - ./data/nginx/:/etc/nginx/conf.d
    ports:
      - 8080:80
    depends_on:
      - backend
  backend:
    build: ./backend
    ports:
      - 3000:3000
    depends_on:
      - db
  db:
    image: postgres:latest
    restart: always
    environment:
      POSTGRES_USER: example
      POSTGRES_PASSWORD: example1234
      POSTGRES_DB: example
    ports:
      - 5432:5432

nginx.conf:

server {
    listen 80;
    server_name example;

    location / {
        root /var/www/html/;
        index index.html;
        autoindex on;
    }

    location /frontend {
        proxy_pass http://example:8080;
        try_files $uri /public/index.html;
    }

    location /backend {
        proxy_pass http://example:3000;
    }

    location /db {
        proxy_pass http://example:5432;
    }
}

任何帮助表示赞赏,谢谢。

权限更新:

ls -l /var/www/

total 4
drwxrwxr-x 6 root www-data 4096 Feb 15 15:44 html

ls -l /var/www/html/

total 200
drwxrwxrwx 3 root www-data   4096 Feb 15 15:44 backend
drwxrwxrwx 3 root www-data   4096 Feb 15 14:25 data
-rw-rw-r-- 1 root www-data    736 Feb 15 15:44 docker-compose.yml
drwxrwxrwx 6 root www-data   4096 Feb 15 15:44 frontend
-rw-rw-r-- 1 root www-data 186352 Feb 15 15:44 package-lock.json

更新:通过正确指向 /frontend/public/index.html 中的 index.html 文件来修复 403 错误。但是,应用程序部署到服务器时仍然存在错误。

标签: dockernginx

解决方案


推荐阅读