Как проксировать в 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