Есть ли способ в nginx прокси для любого URL?

Я хотел бы иметь такой API:

my-proxy-server.com/ http://example.com/foo.pdf

, который передает ответ от http://example.com/foo.pdf . Обратите внимание на этот случай http: // example.com/foo.pdf - это просто пример, это может быть любой URL-адрес pdf.

Итак, в коде sudo nginx.conf:

    location ~* ^/(?<urlpath>.*)$ {
      proxy_pass $urlpath;
    }

Возможно ли это с nginx + некоторые другие r плагин? Нужны советы по реализации этого.

0
задан 11 September 2019 в 21:08
1 ответ

Это описано здесь . По сути, вы просто будете использовать proxy_pass , например:

location ~* ^/(?<pschema>https?)/(?<phost>[\w.]+)(?<puri>/.*) {
    set $adr $pschema://$phost;
    rewrite .* $puri break;

    proxy_pass $adr;

    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $phost;
    proxy_set_header X-NginX-Proxy true;
    proxy_redirect off;
    proxy_connect_timeout 1;
    proxy_intercept_errors on;
    expires 30;
}
1
ответ дан 4 December 2019 в 15:37

Теги

Похожие вопросы