Александр

Александр

С нами с 19 апреля 2025; Место в рейтинге пользователей: #14812
Николай Савин
06 августа 2025, 09:17
2
+1
То, что ты нашел в принципе актуально. Так и делают.
Попробуй вот такой конфиг

server {
    listen 80;
    server_name example.com www.example.com;
    root /home/sites/example.com;
    index index.php;
    client_max_body_size 30M;
    
    # Новый блок для статических файлов с кешированием
    location ~* \.(jpg|jpeg|gif|png|svg|ico|pdf|mp4|webm|ogg|mp3|wav|ttf|otf|woff|woff2|eot)$ {
        # Срок действия кеша в браузере (аналог Expires в Apache)
        expires 1M; # access plus 1 month
        
        # Заголовок для указания, что кеш публичный (аналог Header append Cache-Control "public")
        add_header Cache-Control "public";
    }

    # Отдельный блок для CSS, JS (у них у вас срок больше)
    location ~* \.(css|js)$ {
        expires 2M; # access plus 2 months
        add_header Cache-Control "public";
    }

    location / {
        root /home/sites/example.com;
        if (!-e $request_filename) {
            rewrite ^/(.*)$ /index.php?q=$1 last;
        }
    }
    
    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_split_path_info ^(.+\.php)(.*)$;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include fastcgi_params;
        fastcgi_ignore_client_abort on;
        fastcgi_param  SERVER_NAME $http_host;
    }

    # Правило для запрета доступа к файлам Apache
    location ~ /\.ht {
        deny  all;
    }
}