Francis Daly
August 06, 2023 04:22AM
On Wed, Aug 02, 2023 at 01:42:46PM +0300, O G wrote:

Hi there,

> I would like to reverse proxy the following:
>* to *https://*AB* and all the
> subdirectories so that
> all files like*.css reverse proxy
> to https://*AB**.css
> AB in the above example can be any dynamic input that nginx needs to treat
> as a variable.

Use "map" to create the variables that you want, and then later use
the variables.

You say "any dynamic input"; I'm going to use "up to the next slash,
which must be present"; and you will want to decide how you want to
handle the cases of "AB is empty" or "AB is index.html" and the like.

Strictly, I'd use "map" to create one variable, and a (pcre) regex named
capture group to create the other, like so:

map $request_uri $the_bit_after_the_prefix {
~/citizensolutions/([^/]*)(?<the_rest_of_the_request>/.*) $1;
default "";


And then for testing, something like

location = /citizensolutions/ {
return 200 "Nope; try again\n";
location ^~ /citizensolutions/ {
return 200 "Would use $the_bit_after_the_prefix, $the_rest_of_the_request\n";

and then when you are happy that the "Would use" is showing you what you
expect in all cases you care about, replace that location{} content with

if ($the_bit_after_the_prefix = "") {
return 301 $request_uri/;
proxy_pass https://$$the_rest_of_the_request;

You are effectively telling your nginx to resolve-and-access a dns name
provided by the user, so you'll want to be happy that your nginx can do
that, or the users will see 502 errors.

Good luck with it,

Francis Daly
nginx mailing list
Subject Author Posted

Reverse proxying with URL Rewrite

O G August 02, 2023 06:44AM

Re: Reverse proxying with URL Rewrite

Francis Daly August 06, 2023 04:22AM

Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 258
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 466 on July 09, 2024
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready