plesk, nginx + apache htaccess редирект для создания изображения из php при настройке заголовка ETag - PullRequest
0 голосов
/ 09 октября 2018

В настоящее время у меня есть сайт для установки plesk onyx, использующий apache + nginx в качестве обратного прокси-сервера.Этот веб-сайт обслуживает изображения, обрабатывая их в соответствии с вызываемым URL, например:

http://sub.domain.com/800/600/crop/filename.jpg

, обрезает изображение filename.jpg с разрешением 800x600.

Этовыполняется с помощью файла .htaccess, который перенаправляет запрос в скрипт php:

RewriteRule ^([0-9]+)/([0-9]+)/([^/]+)/([a-zA-Z0-9\-\._]+)$ process-image.php?w=$1&h=$2&method=$3&filename=$4

Теперь меня попросили вернуть заголовок ETag, илипара Last-modified + Content-length, но, похоже, я не могу написать какой-либо дополнительный заголовок.

Я уже выполнил пару руководств по включению etag в nginx, но безуспешно,На самом деле, etag добавляется для статических файлов, то есть jpegs, хранящихся на сервере, но не для тех, которые генерируются на лету.

Я пытался также вручную добавить Etag (и / или другие пользовательские заголовки) но они, кажется, срываются при отправке ответа.

Проблема существует и на установке виртуальной машины laravel с nginx ... В заголовке ответа невозможно установитьпохоже на скрипт php.

Это моя конфигурация nginx, связанная с поддоменом:

server {
    listen 255.255.255.255:80;

    server_name sub.domain.com;
    server_name www.sub.domain.com;
    server_name ipv4.sub.domain.com;

    client_max_body_size 128m;

    root "/var/www/vhosts/domain.com/subdomains/sub";
    access_log "/var/www/vhosts/system/sub.domain.com/logs/proxy_access_log";
    error_log "/var/www/vhosts/system/sub.domain.com/logs/proxy_error_log";

    #extension letsencrypt begin
    location /.well-known/acme-challenge/ {
            root /var/www/vhosts/default/htdocs;

            types { }
            default_type text/plain;

            satisfy any;
            auth_basic off;
            allow all;

            location ~ ^/\.well-known/acme-challenge.*/\. {
                    deny all;
            }
    }
    #extension letsencrypt end

    location / {
            proxy_pass http://255.255.255.255:7080;
            proxy_set_header Host             $host;
            proxy_set_header X-Real-IP        $remote_addr;
            proxy_set_header X-Forwarded-For  $proxy_add_x_forwarded_for;
            proxy_set_header X-Accel-Internal /internal-nginx-static-location;
            access_log off;
    }

    location /internal-nginx-static-location/ {
            alias /var/www/vhosts/domain.com/subdomains/sub/;
            internal;
    }

    location ~ ^/(plesk-stat|awstats-icon|webstat|webstat-ssl|ftpstat|anon_ftpstat) {
            proxy_pass http://255.255.255.255:7080;
            proxy_set_header Host             $host;
            proxy_set_header X-Real-IP        $remote_addr;
            proxy_set_header X-Forwarded-For  $proxy_add_x_forwarded_for;
            proxy_set_header X-Accel-Internal /internal-nginx-static-location;
            access_log off;
    }

    add_header X-Powered-By PleskLin;

}
...