2017-12-15 5 views
0

Problem

Ich stehe hier ein einzigartiges Problem. Ich habe einen Nginx-Server mit einem Admin-Panel (admin.example.com). Jetzt möchte ich nur bestimmten IP-Adressen erlauben, auf diesen Server zuzugreifen, und ich weiß, dass wir das über nginx allow und deny-Tag tun können. Aber dieser Ansatz ist für nicht technische Benutzer ziemlich schwierig und würde Zugriff auf den Server selbst erfordern, um die Änderung vorzunehmen und dann nginx erneut zu laden. Der Zweck ist es, jedem die Möglichkeit zu geben, IP-Adressen auf die weiße Liste zu setzen.Abfangen Anfrage und dann weiter zu einem anderen Server

Lösung

Wir kamen mit einem UI app.example.com (auf einem anderen Server gehostet) bis die IP-Adressen zu erlauben, zu verwalten. Jetzt möchte ich alle (admin.example.com) Anfragen über diesen neuen Server routen, der prüft, ob die IP erlaubt ist, und dann die Anfrage an admin.example.com weiterleiten, ansonsten den Zugriff ablehnen.

Frage

Meine Frage ist, wie können wir Route alle Anfragen über app.example.com und sobald die IP-Weiterleitung überprüft wurde nur dann die Anforderung an den Ursprung, die admin.example.com hier ist?

Wenn es über den Nginx-Reverseproxy möglich ist, muss ich dann die Anfrage über einen lokalen Upstream wie PHP oder Python verarbeiten und dann die Anfrage nach der Verifikation weiterleiten?

Jedes Beispiel mit Pseudocode für Nginx-Konfiguration wird sehr geschätzt.

Ich weiß, Dienste wie Cloudflare tut es, aber ich brauche nur ein grundlegendes Setup.

+0

Wie ich verstanden, Sie die Benutzer wollen IP Whitelist-Adressen den Zugriff ermöglichen 'admin.example.com', na ja, ich verstehe wirklich nicht, warum Sie einen externen Server dafür brauchen? Warum überprüfen Sie nicht die IP-Adresse in Ihrer Anwendung? Oder verwenden Sie einfach "iptables", um IP-Adressen an Port '80' /' 443' zu erlauben/zu verweigern. – Ahmad

+0

Verstanden, aber ich möchte es für mehrere Anwendungen auf verschiedenen Servern. –

+0

@LawrenceCherone dieses Paket erfordert Änderungen an der Nginx, meine Anwendung hat andere Komponenten, die ich nicht betroffen sein möchte. –

Antwort

Verwandte Themen