Nginx / Server Setup

Proxy requests to any remote server in nginx

by , , revisited on


We have by far the largest RPM repository with dynamic stable NGINX modules and VMODs for Varnish 4.1 and 6.0 LTS. If you want to install nginx, Varnish and lots of useful modules for them, this is your one stop repository to get all performance related software.
You have to maintain an active subscription in order to be able to use the repository!

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;
}
  1. Alexandre Carvalho

    Hi, How do I configure properly nginx to get that config working? I’m trying to put that inside a server:

    server {
            listen 80 default_server;
            listen [::]:80 default_server;
    
            server_name _;
    
        # YOUR CODE HERE
    
    }
    

    And is not working. What am I doing wrong?

    Reply
    • Danila Vershinin

      Start with checking configuration errors by running nginx -t . Then, if no errors reported, explain how specifically it’s not working (what URL in your nginx you request).

      Reply

Leave a Reply

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