nginx rewrite = HTTP301 всегда? - PullRequest
       82

nginx rewrite = HTTP301 всегда?

0 голосов
/ 19 июня 2020

У меня есть экземпляр, сидящий за AWS Application Load Balancer и настроенный в качестве члена TargetGroup этого ALB - это URL-адрес проверки работоспособности, который выполняется для экземпляра.

Мой текущий nginx серверный блок разрешает вызовы в / folder / page, который разрешается в /folder/page .php.

 server {
        listen 443 ssl default_server;
        keepalive_timeout 70;
        root /var/www/html;
        index index.php;

        include snippets/self-signed.conf;
        include snippets/ssl-params.conf;

        location / {
            # call .php scripts without their extension
            if (!-e $request_filename){
                rewrite ^(.*)$ /$1.php;
            }
            try_files $uri $uri/ =404;
        }

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

        location ~ /\.ht {
            deny all;
        }
    }

Когда ELB выполняет проверку работоспособности с использованием URL-адреса /healthCheckTest (в этой папке есть индекс. php) проверка работоспособности завершается ошибкой с ответом HTTP 301 (я настроил проверку только на прием результатов HTTP 200). Когда я настраиваю URL-адрес проверки работоспособности как /healthCheckTest/, он проходит (я предполагаю, из-за директивы index index.php).

Я разумно новичок в nginx и, чтобы быть честно говоря, я никогда не пробовал Apache2 с переписыванием за ELB, но мне было интересно, все ли перезаписи выполняют перенаправление HTTP (постоянное или нет), но нормально ли это? Я пробовал несколько альтернатив, и, похоже, ничего не работает - возможно, потому, что перезапись в nginx синонимична HTTP 301?

Единственный ли мой вариант, чтобы проверка работоспособности принимала HTTP301, а также HTTP200 ?

...