HoHsi
@HoHsi

Можно ли в Nginx наследовать блоки?

Доброй ночи!
Можно ли в Nginx наследовать локали как инклюды или миксины?

К примеру так:
server {
    listen       80;

    location / {
        proxy_pass @node_proxy; # инклюд миксины
    }

    location /test/ {
        add_header Tester '1';

        proxy_pass @node_proxy; # инклюд миксины
    }

    location @node_proxy {
        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_pass http://127.0.0.1:1337;
    }
}
  • Вопрос задан
  • 521 просмотр
Решения вопроса 1
Lynn
@Lynn
nginx, js, css
Так как вы написали нельзя. Но можно использовать include

Файл node-proxy.inc
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_pass http://127.0.0.1:1337;


Ваш конфиг:
server {
    listen       80;

    location / {
        include node-proxy.inc;
    }

    location /test/ {
        add_header Tester '1';
        include node-proxy.inc;
    }
}


Правда в этом простом случае я бы написал так:
server {
    listen 80;

    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

    location / {
        proxy_pass http://127.0.0.1:1337;
    }

    location /test/ {
        add_header Tester '1';
        proxy_pass http://127.0.0.1:1337;
    }
}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
evnuh
@evnuh
Поиск Гугл помог мне, впусти и ты его в свой дом
ЛОКАЛИ - ЭТО LOCALE, ЭТО НЕ LOCATION !!!!!!!!!!!!!!!!!!!!!111!!!!!!!!!!!!!!!!!!!!!!!!!!!

нельзя, nginx работает таким образом, что использует для каждого запроса только 1 локейшн. Они могут редиректить друг на друга, но запрос обработается только одним, последним локейшном. Вы можете общие свойства для локейшнов вынести в файл и инклудить этот файл во всех нужных локейшнах.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы