Nginx 未收到特定 URL 的请求

Nginx 未收到特定 URL 的请求

我有一个具有以下配置的服务器块(默认Laravel 家园配置)。

server {
    listen 80;
    listen 443 ssl http2;
    server_name site.app;
    root "/home/vagrant/projects/site/public";

    index index.html index.htm index.php;

    charset utf-8;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location = /favicon.ico { access_log off; log_not_found off; }
    location = /robots.txt  { access_log off; log_not_found off; }

    access_log on;
    access_log  /var/log/nginx/site.app-error.log;

    sendfile off;

    client_max_body_size 100m;

    location ~ \.php$ {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

        fastcgi_intercept_errors off;
        fastcgi_buffer_size 16k;
        fastcgi_buffers 4 16k;
        fastcgi_connect_timeout 300;
        fastcgi_send_timeout 300;
        fastcgi_read_timeout 300;
    }

    location ~ /\.ht {
        deny all;
    }

    ssl_certificate     /etc/nginx/ssl/site.app.crt;
    ssl_certificate_key /etc/nginx/ssl/site.app.key;
}

除以下路线外,似乎所有路线均有效:

http://site.app:8000/backend

查看访问日志后发现 Nginx 从未收到过该请求。奇怪的是,添加尾随/没有任何问题。因此,以下 URL 有效:

http://site.app:8000/backend/

附加信息:

Nginx 版本:1.11.1

我的公共文件夹有index.php一个assets/backend目录。但是删除该目录似乎没有任何作用。

答案1

这是我的 Chrome 浏览器的缓存问题。我不确定具体发生了什么,但我猜想当backendWeb 根目录下有一个目录时,Chrome 缓存了失败的请求。似乎 Nginx 不会响应尝试访问目录的请求。

相关内容