LINUX.ORG.RU

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

 ,


1

2

Если у меня такой код в конфиге:

 location /dir {
    proxy_pass         http://127.0.0.1:7771/;
    proxy_redirect     off;
    proxy_set_header   Host $host;
    proxy_set_header   X-Real-IP $remote_addr;
    proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header   X-Forwarded-Host $server_name;
  }

то все запросы к /dir перенаправляются на http://127.0.0.1:7771/

А как сделать, чтобы /dir/1/2 перенаправлялось на http://127.0.0.1:7771/d1/d2, /dir/d3/d23 на http://127.0.0.1:7771/d3/d23 и вообще любое количество вложенностей?

★★★★★

Разобрался кажется:

location ~/dir(.*)$ {
	    proxy_set_header X-Real-IP  $remote_addr;
	    proxy_set_header X-Forwarded-For $remote_addr;
	    proxy_set_header Host $host;
	    proxy_pass http://127.0.0.1:1234/dir$1;
	}

Qwentor ★★★★★
() автор топика
Ответ на: комментарий от Qwentor

Очень не рекомендуется делать location с регуляркой в пути

Вот здесь описано именно то, что вам надо: https://raymii.org/s/tutorials/NGINX_proxy_folder_to_different_root.html

И внимательно посмотрите доку (все волшебство в слэшиках): http://nginx.org/ru/docs/http/ngx_http_proxy_module.html#proxy_pass (то что начинается с фразы «URI запроса передаётся на сервер так»)

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