Site icon GetPageSpeed

Proxy requests to any remote server in nginx

nginx

nginx

It’s easy to display third party content on your own website through nginx proxying.

The following will allow to see contents of https://example.com/api/v1/time at https://yours.example.com/proxy/https/example.com/api/v1/time:

location ~* ^/proxy/(?<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;
}
Exit mobile version