LINUX.ORG.RU
ФорумAdmin

nginx rewrite host


0

2

Как в nginx сделать rewrite host и передать запрос в другой виртуальтный хост?

Сейчас сделано так:

server {
        listen 192.168.0.122 default;
        if ($ip_actions = "deny_ip") {return 404;}
        if ($host ~* (.*)\.loc$) {
                set $host_without_suffix $1;
        }
        location / {
                proxy_set_header Host $host_without_suffix;
                proxy_pass http://192.168.0.122$request_uri;
        }
}

Это сделано для тестовой схемы.

★★★

Ответ на: комментарий от Chumka

А что тебе не нравится в твоем способе?

1.Есть редиреты, которые редиректят на mysite.ru, а не на mysite.ru.loc.
2.Надо что-то придумать с REMOTEADDR.

exst ★★★ ()
Последнее исправление: exst (всего исправлений: 2)
Ответ на: комментарий от exst

Есть редиреты, которые редиректят на mysite.ru, а не на mysite.ru.loc

где есть? и что с того?

Надо что-то придумать с REMOTEADDR

Не уловил. В REMOTEADDR будет IP-адрес фронтенда. Если нужен клиентский IP-адрес, то используй, например, mod_rpaf (для апача)

Также, м.б. статический вариант подойдет


server {
   server_name mysite.ru

   location / {
      proxy_pass ...
   }
}

server {
    server_name mysite.loc

    location / {
       rewrite ^(.*)$ http://mysite.ru$1 permanent;
    }
}
Chumka ★★★ ()
Ответ на: комментарий от exst

Есть варианты кроме изначального?

в пхп, или что та на бекенде, читать X-Forwarded-For или X-Real-IP или какой ты хедер придумаешь

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

Бэкенд пишется отдельной группой.

ставь им требования к продукту

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