Ich kann zu jeder dieser [...] Domänen gehen und sie anhängen
:8080
, um zum Jenkins-Server zu gelangen. Ich möchte einen Weg finden, um dies zu verhindern und mir zu erlauben, nur über Jenkins auf den Server zuzugreifenip:port
.
Wie in den Kommentaren angedeutet, besteht der erste Schritt darin, den öffentlichen Zugriff auf zu blockieren your_ip:8080
(Jenkins kann noch intern an diesem Port laufen). Wie Sie dies tun, hängt wahrscheinlich von Ihrem VPS ab (auch wenn Ihre iptables- oder Firewall-Schnittstelle ein guter Startpunkt ist).
Der zweite Schritt besteht darin, den "standardmäßigen" virtuellen Apache-Host für Port zu :XX
einem Reverse-Proxy (unter Verwendung des Apache- Mod_proxy- Moduls) zu machen und das Proxy-Ziel als (lokale) Referenz auf Jenkins festzulegen, der auf Port arbeitet :8080
. Dieser Reverse Proxy würde den Zugang zu Jenkins ermöglichen, auch wenn er sonst öffentlich gesperrt wäre. Sie werden wahrscheinlich besonders an den offiziellen Wiki-Notizen von Jenkins interessiert sein, wenn Sie Jenkins hinter Apache laufen lassen .
Anmerkungen
Der Grund, aus dem Sie möchten, dass Ihr Reverse-Proxy der "Standardhost" für einen bestimmten Port ist, besteht darin, dass bei Apache und namenbasierten virtuellen Hosts dieser "Standardhost" (normalerweise der erste virtuelle Host mit Port
:XX
) zurückgegeben wird, wenn eine IP-Adresse angegeben ist angefordert.Der Port für Ihren Reverse Proxy wird durch Ihren virtuellen Hosteintrag definiert. Wenn Apache und Jenkins jedoch auf demselben Server arbeiten, kann dieser Port nicht derselbe sein, auf dem sich Jenkins befindet (z
:8080
. B. ).Vergessen Sie nicht, die richtige
Listen
Anweisung für den Port:XX
in Ihrer Apache-Konfiguration hinzuzufügen .Wenn Sie einen Port
:443
(SSL) verwenden, sollte Ihr Zertifikat für diesen Port Ihre IP-Adresse als gültigen Namen enthalten. Andernfalls erhalten Sie wahrscheinlich Warnmeldungen.
Um klar zu sein, Port :XX
ist nur ein Beispiel / Platzhalter und bedeutet einen beliebigen Port, den Sie auswählen.
Gibt es eine Möglichkeit, die ich auch versuchen kann, eine Verbindung
ip:80
herzustellen?
Habe Apache nur Listen
an anderen Ports als :80
. Dadurch wird jedoch der normale :80
HTTP-Zugriff auf Ihre Websites unterbrochen (dh, wenn ein Benutzer nicht explizit https://
in seinen Browser eingibt oder einen expliziten https://
Link aufruft, kann er keine Verbindung herstellen).
Als Kompromiss können Sie dasselbe Verfahren (mit einem "Standard" -Host auf Port :80
) verwenden, um Anforderungen an Ihre Hauptsite oder an einen anderen Ort (z https://www.google.com
. B. ) umzuleiten (und nicht als Proxy ).