2 votos

Nginx proxy_pass largo de la directiva

quiero hacer proxy_pass

de https://foo.bar/api/v1/users/{userId}/store/{storeCode}/status a https://bar.foo/api/v1/users/{userId}/store/{storeCode}/status

y también

de https://foo.bar/api/v1/users/{userId}/opendate a https://bar.foo/api/v1/users/{userId}/opendate

los diferentes con 2 enlaces están método http que utiliza para acceder, más tarde vamos a limitar el acceso con limit_except, pero ahora quiero proxy_pass la primera solicitud.

he hecho una configuración como esta

location /api/v1/users/[0-9a-z]+/store {
    proxy_pass https://bar.foo/api/v1/users/[0-9a-z]+/store;
    proxy_set_header Host $proxy_host;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For proxy_add_x_forwarded_for;
    proxy_redirect off;
    proxy_buffering off;
    proxy_ssl_protocols TLSv1.2;
    proxy_ssl_server_name on;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    proxy_pass_request_headers on;
}


location /api/v1/users/[0-9a-z]+/opendate {
    proxy_pass https://bar.foo/api/v1/users/[0-9a-z]+/opendate;
    proxy_set_header Host $proxy_host;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For 
    proxy_add_x_forwarded_for;
    proxy_redirect off;
    proxy_buffering off;
    proxy_ssl_protocols TLSv1.2;
    proxy_ssl_server_name on;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    proxy_pass_request_headers on;
}

pero todavía no consigo mi servidor proxy de la solicitud. hay alguien que sabe cómo proxy_pass largo de la directiva de ubicación con algunos regex en nginx ?

0voto

HugoFS Puntos 313

Si que es una expresión regular, usted está utilizando la sintaxis incorrecta de la location directiva. Consulte este documento para más detalles.

Sólo necesitas dar proxy_pass un URI parte, si el URI se cambia antes de pasar a los desarrolladores. Consulte este documento para más detalles.

Por ejemplo:

location ~ ^/api/v1/users/[0-9a-z]+/store {
    proxy_pass https://bar.foo;
    ...
}

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: