Как отдать страницу NGINX proxy в зависимости от IP?

Добрый. Подскажите как сделать следующую вещь. Есть корпоративная система, убранная за NGINX прокси. В отдельном каталоге разместили фронт от тикет системы, доступный всем. Теперь суть проблемы, пользователи заходят по домену и получают 403 ошибку, т.к. не дописывают адрес до фронта. Как им показать страницу с предложением перейти в тикет систему?

Т.е. в систему можно зайти с IP 1.1.1.1 и 2.2.2.2, а подать заявку с любого адреса, тем кто ломятся на служебные страницы не с IP 1.1.1.1 и 2.2.2.2, надо отдать не 403, а предложение перейти на другую страницу.

Текущий конфиг выглядит так:
server {
    listen 80;
    server_name lk.orgname.ru;

    location /ticket/ {
        proxy_pass https://10.10.10.25/ticket/;
        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-Proto $scheme;
    }

    location / {
        allow 1.1.1.1
        allow 2.2.2.2
        deny all;

        proxy_pass https://10.10.10.25;
        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-Proto $scheme;
    }

    location ~ /\.ht {
        deny all;
    }

    listen 443 ssl;
    ssl_certificate /etc/letsencrypt/live/lk.orgname.ru/cert.pem;
    ssl_certificate_key /etc/letsencrypt/live/lk.orgname.ru/privkey.pem;
}
  • Вопрос задан
  • 260 просмотров
Решения вопроса 1
iMedved2009
@iMedved2009
Не люблю людей
geo $upstream  {
    default default_upstream;
    10.50.0.0/16 ticket_upstream;
}

upstream default_upstream {
    server 10.10.10.25:80;
}

upstream ticket_upstream {
    server 10.10.10.25:80;
}

server {
    location / {
        ...
        proxy_pass http://$upstream;
    }
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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