Назад | Перейти на главную страницу

Есть ли способ в 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 + другим плагином? Нужны советы по реализации этого.

Это покрыто Вот. По сути, вы просто будете использовать 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;
}