Как проксировать в nginx и подставить в адрес get запрос?

ЗАДАЧА. В адресной строке браузера ввожу proxy.localhost/godzilla (proxy.localhost мой виртальный хост). Nginx проксирует этот запрос, после чего в адресной строке дожно остаться proxy.localhost/godzilla но по факту дожно перейти на https://rezka.ag/search/?do=search&subaction=search&q=godzilla

Мой код:

server {
<------>listen *:80;
<------>server_name proxy.localhost;
<------>location /(.*) {
<------><------>    proxy_pass https://rezka.ag/search/?do=search&subaction=search&q=$1;
<------><------>    proxy_set_header Host rezka.ag;
<------>}
}

Пожалуйста помогите, а то уже всё перепробовал.

P.S. У меня выдаёт 403 ошибку.


Ответы (1 шт):

Автор решения: nörbörnën

Прокси на примере ru.stackoverflow.com

server {
    server_name my.host.name;
    listen 80;

    default_type    text/html;


    proxy_http_version      1.1;
    proxy_set_header        Host                'ru.stackoverflow.com';
    proxy_set_header        X-Real-IP           $remote_addr;
    proxy_set_header        X-Forwarded-for     $remote_addr;

    proxy_connect_timeout   120;
    proxy_send_timeout      120;
    proxy_read_timeout      120;
    client_max_body_size    50m;

    sub_filter  'https:'    'http:';
    sub_filter  '/ru.stackoverflow.com'     '/my.host.name';
    sub_filter  '/stackoverflow.com'        '/my.host.name';
    sub_filter_once off;

    location / {
        proxy_pass          https://ru.stackoverflow.com;
        proxy_set_header    Accept-Encoding "";
    }
    location ~ ^/(.+)$ {
        proxy_pass          https://ru.stackoverflow.com/search?q=$1;
        proxy_set_header    Accept-Encoding "";
    }
}

Проверено на nginx version: nginx/1.19.10

→ Ссылка