Nginx / Server Setup

Proxy requests to any remote server in nginx

by , , revisited on


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;
}

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.