nginx 禁止目录索引“/var/www/html/”

kjthegm6  于 2023-08-03  发布在  Nginx
关注(0)|答案(1)|浏览(163)

我正在使用docker compose来升级容器,运行正常,但当我尝试到http://localhost:8080/时,我得到了以下错误:
2023/07/18 07:22:07 [错误] 12#12:*6禁止“/var/www/html/”目录索引,客户端:172.31.0.1,服务器:_,请求:“GET / HTTP/1.1”,主机:“localhost:8080”172.31.0.1 - - [18/Jul/2023:07:22:07 +0000]“GET / HTTP/1.1”403 196“-”“Mozilla/5.0(X11; Linux x86_64)AppleWebKit/537.36(KHTML,like Gecko)Chrome/114.0.0.0 Safari/537.36”
下面是我的nginx配置文件:phirater.test.conf

server {
    listen 80;
    server_name phirater.test;
    root /var/www/html/public;

    index index.php index.htm index.html;

    charset utf-8;

    location / {
        try_files $uri $uri/ /index.php$is_args$args;
    }

    access_log /var/log/nginx/phirater.test-access.log;
    error_log  /var/log/nginx/phirater.test-error.log error;

    error_page 404 /index.php;

    client_max_body_size 100m;

    location ~ \.php$ {
            include snippets/fastcgi-php.conf;
            fastcgi_intercept_errors on;
            fastcgi_split_path_info ^(.+\.php)(/.+)$;
            fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
    }

    location ~ /\.(?!well-known).* {
            deny all;
    }
}

字符串
当我尝试点击以下内容时:http://localhost:8080/composer.json显示文件的内容,但http://localhost:8080返回上面提到的错误。我做错了什么?
容器内的用户许可如下:

-rwxr-xr-x   1 1000 1000   1369 Jul 13 12:46 Dockerfile*
drwxr-xr-x  13 1000 1000   4096 Nov 16  2022 app/
-rwxr-xr-x   1 1000 1000   1635 Nov 16  2022 artisan*
-rw-rw-rw-   1 1000 1000   1321 Jul 13 12:45 bitbucket-pipelines.yml
drwxr-xr-x   3 1000 1000   4096 Nov 16  2022 bootstrap/
-rw-r--r--   1 1000 1000   1419 Nov 16  2022 bower.json
-rw-r--r--   1 1000 1000   3393 Jun 14 05:19 composer.json
-rw-r--r--   1 1000 1000 410926 Jul 10 10:34 composer.lock
drwxr-xr-x   2 1000 1000   4096 Jul 13 12:45 config/
drwxr-xr-x   4 1000 1000   4096 Nov 16  2022 database/
drwxr-xr-x   3 1000 1000   4096 Jul  5 02:24 docker-compose/
-rw-rw-rw-   1 1000 1000   4114 Jul 13 12:45 gulpfile.js
drwxr-xr-x 377 1000 1000  16384 Jun  8 09:26 node_modules/
-rw-r--r--   1 1000 1000    394 Jun 14 05:05 package.json
-rw-r--r--   1 1000 1000    724 Jul 18 06:42 phirater.test.conf
-rw-r--r--   1 1000 1000   5480 Jul 13 12:45 php-fpm.conf
-rw-r--r--   1 1000 1000     97 Nov 16  2022 phpspec.yml
lrwxrwxrwx   1 1000 1000     18 Jun 13 06:31 phpunit -> vendor/bin/phpunit*
-rw-r--r--   1 1000 1000   1860 Jun 14 05:05 phpunit.xml
drwxr-xr-x   8 1000 1000   4096 Nov 16  2022 public/
drwxr-xr-x   5 1000 1000   4096 Nov 16  2022 resources/
-rw-r--r--   1 1000 1000    560 Nov 16  2022 server.php
-rw-r--r--   1 1000 1000    332 Jul 13 07:00 start-container.sh
drwxr-xr-x   8 1000 1000   4096 Jul 13 10:01 storage/
-rw-r--r--   1 1000 1000    308 Jul 11 11:43 supervisord.conf
drwxr-xr-x   7 1000 1000   4096 Jul 13 12:45 tests/
drwxr-xr-x  81 1000 1000   4096 Jul  5 05:22 vendor/


我在SO上尝试了各种类似的问题的解决方案,但没有一个工作。

k10s72fa

k10s72fa1#

您使用的是一个命名的主机,所以您需要请求的URL来匹配,即http://phirater.test:8080/
处理http://localhost:8080/请求的服务器是默认服务器,这就是为什么错误提到/var/www/html而不是/var/www/html/public
你可以通过编辑hosts file来使用你的命名主机,但我建议你这样做,因为你不太可能运行nginx和多个命名租户,简单地覆盖default配置。

volumes:
  - phirater-l51/phirater.test.conf:/etc/nginx/conf.d/default.conf
  - phirater-l51:/var/www/html

字符串

相关问题