nginx: как настроить обратный прокси для глобальных URL - PullRequest
0 голосов
/ 20 февраля 2019

Я ищу способ настроить nginx для работы в качестве обратного прокси-сервера (?) С кэшированием, но с явным взятием / перезаписью оригинальных URL-адресов, где URL-адрес - не локальный сервер, а какой-либо общий адрес.

НапримерЯ хотел бы явно кэшировать / прокси-URL.Итак, для исходного URL-адреса, например https://org.url.baz/user/repo/foo, я бы хотел иметь возможность кэшировать все запросы через nginx на my.domain.foo с явным «запросом кэша», например * 1008.*

http://my.domain.foo/cache/http://org.url.baz/user/repo/foo

и переписать все последующие запросы.То есть, аналогично синтаксису сувениров Интернет-архива archive.org / save / org.url.baz

Поскольку моя идея не является «истинным» обратным прокси-сервером в каком-либо смысле, пример в https://www.nginx.com/resources/wiki/start/topics/examples/reverseproxycachingexample/ не полностью применимо, но, я думаю, нуждается в значительном расширении.

1 Ответ

0 голосов
/ 20 февраля 2019

Вы ищете что-то вроде это .

В частности:

location ~* ^/cache/(?<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;
}

Это будет прокси your.example.com/cache/https/org.url.baz/user/repo/foo до https://org.url.baz/user/repo/foo

Обратите внимание, что your.example.com/cache/https://org.url.baz/user/repo/foo, вероятно, не будет действительным URL, поэтому ваши URL не должны включать :// в спецификаторе протокола удаленных веб-сайтов.

...