Was am häufigsten für diesen Zweck verwendet wird, ist eine Art reverse proxy. Ich werde das einfache Apache-Setup beschreiben, aber es sollte so einfach sein, es mit nginx oder HAProxy zu konfigurieren.
Zum Beispiel Zwecke, lassen Sie uns saß, dass Sie drei Dienste haben auf dem Server ausgeführt wird:
- Jenkins auf Port 8080
- Sonarqube auf Port 9000
- Rundeck auf Port 4440
Um Dienste unter Verwendung des Domänennamens unterscheiden zu können, müssen Sie zunächst mehrere Einträge in Ihrem DNS erstellen und die Namen auf die IP-Adresse des Servers verweisen:
jenkins.example.com A 192.0.2.2
sonar.example.com A 192.0.2.2
rundeck.example.com A 192.0.2.2
Als nächstes installieren Server Apache HTTP (wenn Sie nicht bereits getan haben):
yum install httpd
Erstellen Sie eine Datei /etc/httpd/conf.d/proxy.conf
:
<VirtualHost *:80>
ServerName jenkins.example.com
ProxyPreserveHost On
ProxyPass / http://localhost:8080/
ProxyPassReverse / http://localhost:8080/
</VirtualHost>
<VirtualHost *:80>
ServerName sonar.example.com
ProxyPreserveHost On
ProxyPass / http://localhost:9000/
ProxyPassReverse / http://localhost:9000/
</VirtualHost>
<VirtualHost *:80>
ServerName rundeck.example.com
ProxyPreserveHost On
ProxyPass / http://localhost:4440/
ProxyPassReverse / http://localhost:4440/
</VirtualHost>
(die Logik ganz klar sein sollte, für detaillierte Erklärung, siehe the docs)
Danach starten Sie einfach den httpd-Dienst: service httpd start
.
- Die Anweisungen sind für CentOS, sollten aber nicht zu viel unterscheiden sich für andere Distributionen
- Falls es nicht wie erwartet funktioniert (ohne offensichtliche Spur in Protokollen) versuchen, mit behinderter SELinux (
setenforce 0
& & service httpd restart
)
Danke für die Erklärung, ich werde es versuchen – FranAguiar