2017-07-26 2 views
0

Ich habe einen Server mit mehreren Diensten und Tools mit Web-basierte Benutzeroberfläche (Rundeck, Jenkins, Sonarqube, ...) und ich möchte das Devteam mit einer richtigen URL zugreifen können , nicht die Server-IP und ein Port. IE: - companyName-rundeck.com - companyName-jenkins.com - companyName-sonarqube.comMehrere Dienste mit webbasierter Benutzeroberfläche auf dem gleichen Server

Was wäre der beste Ansatz sein, das zu tun?

Antwort

1

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)
+0

Danke für die Erklärung, ich werde es versuchen – FranAguiar

Verwandte Themen