NGINX кэширует phpmyadmin - изображения не загружаются - PullRequest
0 голосов
/ 01 июля 2018

У меня есть сервер NGINX, на котором я включил кэширование для своего веб-сайта laravel. У меня также есть phpmyadmin на сервере. Поскольку я включил кэширование, ни одно из изображений из phpmyadmin не возвращается, когда я его просматриваю. Ниже, пожалуйста, найдите код сервера. заранее благодарю за помощь.

/ phpmyadmin / themes / dot.gif 404 (не найден)

Конфигурация NGINX

server {
if ($host = www.xx.com) {        return 301 https://$host$request_uri;    } 
if ($host = xx.com) {        return 301 https://$host$request_uri;    } 



listen 80;
listen [::]:80;
server_name xx.com www.xx.com;
return 301 https://$host$request_uri;
}

server {

listen 443 ssl default_server;
listen [::]:443 ssl default_server;

root /var/www/yyyy;

gzip on;
gzip_vary on;
gzip_disable "msie6";
gzip_comp_level 6;
gzip_min_length 1100;
gzip_buffers 16 8k;
gzip_proxied any;
gzip_types
    text/plain
    text/css
    text/js
    text/xml
    text/javascript
    application/javascript
    application/x-javascript
    application/json
    application/xml
    application/xml+rss;
#css|js
location ~*  \.(jpg|jpeg|png|gif|ico)$ {        expires 30d;    }
location ~*  \.(pdf)$ {        expires 30d;    }

ssl_certificate /xxx/fullchain.pem; # managed by x
ssl_certificate_key /xxx/privkey.pem; # managed by xx

ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers "xxx";
ssl_session_cache shared:SSL:10m;

ssl_dhparam /etc/ssl/certs/dhparam.pem;
ssl_session_timeout 1d;
ssl_session_tickets off;
ssl_stapling on;
ssl_stapling_verify on;


index index.php index.html index.htm;

server_name xx.com www.xx.com;

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

location ~ \.php$ {
    include snippets/fastcgi-php.conf;
    fastcgi_pass unix:/run/php/php7.0-fpm.sock;
}

location ~ /\.ht {
    deny all;
}

location /phpmyadmin {
    root /usr/share/;
    index index.php;
    try_files $uri $uri/ =404;                                          

    location ~ ^/phpmyadmin/(doc|sql|setup)/ {
        deny all;
    }

    location ~ /phpmyadmin/(.+\.php)$ {

        fastcgi_pass unix:/run/php/php7.0-fpm.sock;

        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
        include snippets/fastcgi-php.conf;
        fastcgi_buffer_size 128k;
        fastcgi_buffers 256 4k;
        fastcgi_busy_buffers_size 256k;
        fastcgi_temp_file_write_size 256k;
        fastcgi_read_timeout 240;

    }

}

}

1 Ответ

0 голосов
/ 04 июля 2018

В Nginx регулярное выражение совпадает с префиксным соответствием. Так что эта директива считается более подходящей для всего, что заканчивается gif и т. Д.

location ~* \.(jpg|jpeg|png|gif|ico)$ { expires 30d; }

чем этот

location /phpmyadmin {

Таким образом, все ваши изображения обрабатываются директивой top location, даже те, которые начинаются с / phpmyadmin, а первая директива имеет другой корневой каталог, в котором находится ваше местоположение phpmyadmin, поэтому Nginx не может найти там файлы

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...