Nginx proxy_pass в каталог в инструкции if

то, что я хочу сделать, это обратный прокси-каталог b.com/c/d/1.jpg с a.com/1.jpg

location / {
    proxy_ssl_server_name on;
    if (!-e $request_filename) {
       # below will cause error: cannot have URI part in location given by regular expression, or inside named location, or inside \"if\" statement,
       # proxy_pass https://b.com/c/d; 
       proxy_pass https://b.com;
    }
}

кто-нибудь может помочь? как это сделать правильно. СПАСИБО.

Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
1
0
91
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Замените if (!-e $request_filename) оператором try_files и поместите proxy_pass в именованное место . Используйте rewrite...break, чтобы настроить URI до того, как он будет передан вверх по течению.

Например:

location / {
    try_files $uri $uri/ @proxy;
}
location @proxy {
    rewrite ^/(.*)$ /c/d/$1 break;

    proxy_ssl_server_name on;
    proxy_pass https://b.com;
}

Другие вопросы по теме