Обратный прокси не работает, когда финиш sh с косой чертой - PullRequest
0 голосов
/ 21 января 2020

У меня есть nginx конфигурация:

    listen 443;
    server_name _;
    ssl on;
    ssl_certificate /opt/psa/var/certificates/scfp28eqh ;
    ssl_certificate_key /opt/psa/var/certificates/scfp28eqh ;
    location ~ ^/(api|socket\.io) {
        proxy_pass https://myurl:60000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
        # First attempt to serve request as file, then
        # as directory, then fall back to displaying a 404.
        #try_files $uri $uri/ =404;
    }

    location / {
        proxy_set_header Host $host;
        proxy_pass https://myurl/;
    }

И это работает почти всегда, но возвращает 404, когда URL заканчивается с завершающим sla sh.

Я пытался удалить с этой строкой:

rewrite ^/(.*)/$ /$1 permanent;

А теперь это:

listen 443;
server_name _;
ssl on;
ssl_certificate /opt/psa/var/certificates/scfp28eqh ;
ssl_certificate_key /opt/psa/var/certificates/scfp28eqh ;
rewrite ^/(.*)/$ /$1 permanent;
location ~ ^/(api|socket\.io) {
    proxy_pass https://myurl:60000;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection 'upgrade';
    proxy_set_header Host $host;
    proxy_cache_bypass $http_upgrade;
    # First attempt to serve request as file, then
    # as directory, then fall back to displaying a 404.
    #try_files $uri $uri/ =404;
}

location / {
    proxy_set_header Host $host;
    proxy_pass https://myurl/;
}

Но если вы введете URL с трейлингом sla sh, не работайте. Как удалить последний трейлинг сл sh в этом случае?

...