Второй день ломаю голову.
Используется reverse proxy схема. Сайт работает по https. Все запросы на
http перенаправляются на https. На сайте есть каталог.
Если в запросе к каталогу не указывать закрывающий слеш, то происходит два
редиректа:
1. сначала на сайт с http с тем же путём но с закрывающим слешем
2. а после обратно на https с закрывающим слешем.

Как сделать, чтобы редирект вёл сразу на https с закрывающим слешем?
В качестве примера создал поддомен, где это можно посмотреть.
https://apstenu.siava.ru/test > http://apstenu.siava.ru/test/ >
https://apstenu.siava.ru/test/

Редиректы проверял с помощью сервисов
https://showredirects.com/
http://www.redirect-checker.org/

Конфиг reverse proxy:

http {
...
server {
        listen 80;
        server_name apstenu.siava.ru;
        return 301 https://apstenu.siava.ru$request_uri;
}
server {
        listen 443 ssl http2;
        server_name apstenu.siava.ru;
        include /etc/nginx/ssl-siava.ru;

        access_log off;
        location / {
                proxy_pass                      http://192.168.0.2;
                proxy_redirect          off;
                proxy_set_header        Host                            $host;
                proxy_set_header        X-Real-IP                       
$remote_addr;
                proxy_set_header        X-Forwarded-For         
$proxy_add_x_forwarded_for;
    }
}
}

Конфиг backend-сервера 192.168.0.2:

server {
        listen   80;
        server_name apstenu.siava.ru;

        access_log  off;
        log_not_found   off;

        root /home/apstenu.siava.ru;

        location / {
                try_files $uri $uri/ =404;
                index index.jpg;
        }

        location ~* ^.+\.(jpg|htm)$ {
                expires      30d;
        }
}

Posted at Nginx Forum: 
https://forum.nginx.org/read.php?21,282360,282360#msg-282360

_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Ответить