LINUX.ORG.RU
ФорумAdmin

nginx proxy_pass + rewrite + key

 


0

2

Добрый день. Снова обращаюсь на спасительный форум )

Задача перенаправить и подставить ключ в внешний URL, но сам ключ не засветить пользователю (в яндекс апи ключ - но это не важно)

Пытаюсь сделать так. Браузер шлёт:

http://(мой_домен).ru/platform/portal/api-maps/2.1/

и улетает:

https://enterprise.api-maps.yandex.ru/2.1/?lang=ru_RU&apikey=(тут_сам_ключ)

Сделал вот так:

set $api_key &apikey=(тут сам ключ);
set $lang ?lang=ru_RU;

location /platform/portal/api-maps/ {
rewrite ^/platform/portal/api-maps/(.+)$ https://enterprise.api-maps.yandex.ru/$1$lang$api_key;
Всё отлично работает, но ключ видно пользователю при переадресации. Это конечно недопустимо.

А далее пошли признания в безграмотности :) - пытаюсь сделать через прокси:

    location /platform/portal/api-maps/ {
    rewrite ^/platform/portal/api-maps/(.+)$ ^/platform/portal/api-maps/$1$lang$api_key;
    proxy_pass https://enterprise.api-maps.yandex.ru/;
не работает. Эксперементирую, то 404 то 500.

Друзья, подскажите пожалуйста как правильно.

(И уроки по nginx на эту тематику если не сложно)

Спасибо за ваше внимание!


Попробуй break добавить в rewrite.

rewrite ^/platform/portal/api-maps/(.+)$ ^/platform/portal/api-maps/$1$lang$api_key break;

Deleted
()
Ответ на: комментарий от Deleted

Не пошло ((

URL запроса: http://(мой_домен).ru/platform/portal/api-maps/2.1/ Метод запроса:GET Удалённый адрес:192.168.*.*:80 Код состояния: 400 Bad Request

ishk0
() автор топика
10 сентября 2018 г.
Ответ на: комментарий от ishk0

Ой ... забыл отписать:

set $api_key &apikey=************;
    set $lang ?lang=ru_RU;



location /platform/portal/api-maps/ {
        rewrite ^/platform/portal/api-maps/(.+)$ https://enterprise.api-maps.yandex.ru/$1$lang$api_key;
        }

Вот так заработало. Спасибо.

Темку закрывать )

ishk0
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.