Sv translation |
---|
|
Description of the roleThe role LB provides the central access point to the portal and the SOAP interfaces. Here the requests are distributed to the available Web application servers, taking into account an even load distribution, the possible failure of one or more Web servers and the service-specific restrictions. Furthermore, this role also handles the provision of the TLS encrypted connection via HTTPS. The service can be offered both on HTTP (port 80) and HTTPS (port 443). An automatic redirection to HTTPS or special URLs can also be implemented here (Examples: https://acd.example.com is distributed to: https://acd.example.com/CarrierPortal/login/reseller/client or https://acd.exaple.com/admin is distributed to https://acd.exaple.com/CarrierPortal/sysadmin/login). DSince the role usually requires very few resources, it is usually (and in the configuration example given here) installed on the same machine on which the STORE role was installed. Installing the softwareThe installation of the required software haproxy is done with the following command: Translations Ignore |
---|
Code Block |
---|
language | bash |
---|
title | Installation of haproxy |
---|
| yum -y install haproxy
mv /etc/haproxy/haproxy.cfg /etc/haproxy/haproxy.cfg.sample |
|
The supplied sample configuration file is renamed with the second command so that it is also available for reference purposes at a later time. activate haproxyThe haproxy service is added to the list of automatically starting services with the following command Translations Ignore |
---|
Code Block |
---|
language | bash |
---|
title | haproxy service autostart |
---|
| chkconfig haproxy on |
|
Firewall configurationNext, the port shares for the haproxy service must be entered and permanently stored in the firewall Translations Ignore |
---|
Code Block |
---|
language | bash |
---|
title | Configure firewall |
---|
| firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --zone=public --add-port=443/tcp --permanent
firewall-cmd --zone=public --add-port=7777/tcp --permanent
firewall-cmd --reload |
|
SeLinux ConfigurationTo enable haproxy to open arbitrary ports, a SeLinux configuration must be made: Translations Ignore |
---|
Code Block |
---|
language | bash |
---|
title | SeLinux configuration |
---|
| setsebool -P haproxy_connect_any=1
semanage permissive -a haproxy_t |
|
Log haproxyTo save the log output of the haproxy service via the central logging service into a separate log file, the following commands must be executed: Translations Ignore |
---|
Code Block |
---|
language | bash |
---|
title | Adjustments to the syslog service |
---|
| sed -i -e 's/#$ModLoad *imudp/$ModLoad imudp/' -e 's/#$UDPServerRun *514/$UDPServerRun 514/' /etc/rsyslog.conf
cat <<EOFF>/etc/rsyslog.d/haproxy.conf
local2.* /var/log/haproxy.log
EOFF
service rsyslog restart |
|
|
Sv translation |
---|
|
Beschreibung der RolleDie Rolle LB stellt den zentralen Zugangspunkt zum Portal und den SOAP Schnittstellen zur Verfügung. Hier erfolgt dann die Verteilung der Anfragen auf die zur Verfügung stehenden Web Application Server unter Berücksichtigung einer gleichmäßigen Lastverteilung, des möglichen Ausfalls einer oder mehrerer Web Server und der Dienst-Spezifischen Einschränkungen. Des Weiteren übernimmt diese Rolle auch das Bereitstellen der mittels TLS verschlüsselten Verbindung über HTTPS. Der Dienst kann sowohl auf HTTP (Port 80) und HTTPS (Port 443) angeboten werden. Eine automatische Umleitung zu HTTPS bzw. spezieller URLs kann hier auch realisiert werden (Beispiele: https://acd.example.com wird umgeleitet zuhttps://acd.example.com/CarrierPortal/login/reseller/client oder https://acd.exaple.com/admin wird umgeleitet zu https://acd.exaple.com/CarrierPortal/sysadmin/login). Da die Rolle in der Regel sehr wenig Ressourcen benötigt, wird sie in der Regel (und auch im hier aufgeführten Konfigurationsbeispiel) auf der gleichen Maschine installiert, in der auch die Rolle STORE installiert wurde. Installation der SoftwareDie Installation der benötigten Software haproxy erfolgt mittels folgenden Befehls: Translations Ignore |
---|
Code Block |
---|
language | bash |
---|
title | Installation |
---|
|
|
| von | yum -y install haproxy
mv /etc/haproxy/haproxy.cfg /etc/haproxy/haproxy.cfg.sample |
|
Die mitgelieferte Beispiels-Konfigurationsdatei wird mit dem zweiten Befehl umbenannt, damit sie auch zu einem späteren Zeitpunkt zu Referenzzwecken zur Verfügung steht. haproxy aktivierenDer haproxy Dienst wird mit folgendem Befehl in die Liste der automatisch startenden Dienste aufgenommen: | Dienst
Firewall KonfigurationAls nächstes müssen in der Firewall die Port-Freigaben für den haproxy Dienst eingetragen und persistent gespeichert werden: | Firewall konfigurieren | firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --zone=public --add-port=443/tcp --permanent
firewall-cmd --zone=public --add-port=7777/tcp --permanent
firewall-cmd --reload |
|
SeLinux KonfigurationDamit haproxy beliebige Ports öffnen kann, muss eine SeLinux Konfiguration vorgenommen werden: Translations Ignore |
---|
Code Block |
---|
language | bash |
---|
title | SeLinux configuration |
---|
| setsebool -P haproxy_connect_any=1
semanage permissive -a haproxy_t |
|
Log haproxyUm die Logausgaben des haproxy Dienstes über den zentralen Logging-Dienst in eine separate Log-Datei zu speichern, müssen folgende Befehle ausgeführt werden: | Anpassungen des syslog-DienstesAdjustments to the syslog service |
| sed -i -e 's/#$ModLoad *imudp/$ModLoad imudp/' -e 's/#$UDPServerRun *514/$UDPServerRun 514/' /etc/rsyslog.conf
cat <<EOFF>/etc/rsyslog.d/haproxy.conf
local2.* /var/log/haproxy.log
EOFF
service rsyslog restart |
|
|
Der Aufbau der Konfigurationsdatei des haproxy Dienstes ist recht komplex. Aus diesem Grunde empfiehlt es sich eine entsprechende Vorlage aus dem zentralen jtel Download-Verzeichnis anzuwenden, um die Konfigurationsarbeiten zu beschleunigen. Dort befinden sich zwei Vorlagen, die sich darin unterscheiden, ob die Dienste über HTTP oder über HTTPS angeboten werden. Ist die Bereitstellung über HTTPS gewünscht, muss zusätzlich zu der Konfigurationsdatei auch eine Datei mit einem gültigen Zertifikat und dem dazugehörigen Private Key im PEM-base64--Format zur Verfügung gestellt werden.
Das Herunterladen der folgenden Konfigurationsvorlage ist ein guter Startpunkt für ein System welches über HTTP erreichbar sein soll:
Code Block |
---|
language | bash |
---|
title | Herunterladen der HTTP Konfigurationsvorlage |
---|
|
curl http://cdn.jtel.de/downloads/configs/haproxy-std.cfg > /etc/haproxy/haproxy.cfg |
Ist hingegen gewünscht, dass HTTP Zugriffe automatisch auf HTTPS umgeleitet werden und alle Zugriffe über HTTPS erfolgen sollen, so ist folgende Konfigurationsvorlage herunterzuladen:
Code Block |
---|
language | bash |
---|
title | Herunterladen der HTTPS Konfigurationsvorlage |
---|
|
curl http://cdn.jtel.de/downloads/configs/haproxy-ssl.cfg > /etc/haproxy/haproxy.cfg |
Im Falle einer Konfiguration die HTTPS Unterstützt, muss zusätzlich die Datei /etc/haproxy/haproxy.pem
angelegt werden, in der sich sowohl das Zertifikat, eventuelle Zwischenzertifikate und der Private Schlüssel befindet. Diese Datei muss außerdem eine spezielle Berechtigung erhalten, damit nur der Benutzer root darauf lesen zugreifen kann, ansonsten wird der haproxy Dienst nicht starten:
Sv translation |
---|
|
Description du rôleLe rôle LB fournit le point d'accès central au portail et aux interfaces SOAP. Les demandes sont alors distribuées aux serveurs d'application Web disponibles, en tenant compte d'une répartition égale de la charge, de la défaillance éventuelle d'un ou de plusieurs serveurs Web et des restrictions propres au service. En outre, ce rôle gère également la fourniture de la connexion cryptée TLS via HTTPS. Le service peut être offert à la fois sur HTTP (port 80) et HTTPS (port 443). Une redirection automatique vers HTTPS ou des URLs spéciales peut également être mise en œuvre ici (Exemples : https://acd.example.com is distributed to: https://acd.example.com/CarrierPortal/login/reseller/client or https://acd.exaple.com/admin est distribué à https://acd.exaple.com/CarrierPortal/sysadmin/login). Comme le rôle nécessite généralement très peu de ressources, il est généralement (et dans l'exemple de configuration donné ici) installé sur la même machine sur laquelle le rôle STORE a été installé. Installation du logicielL'installation des logiciels nécessaires haproxy se fait avec la commande suivante : | Sichern der Zertifikatdatei | Installation de l'haproxy |
| yum -y install haproxy mv |
| chmod 400pem |
Erforderliche Anpassungen der Konfiguration
...
cfg /etc/haproxy/haproxy.cfg |
|
|
...
Anpassung der Benutzer für die haproxy-Administration
...
L'exemple de fichier de configuration fourni est renommé avec la deuxième commande afin qu'il soit également disponible à des fins de référence ultérieurement. activer l'haproxyLe service haproxy est ajouté à la liste des services démarrant automatiquement avec la commande suivante | Generieren eines Passwort-Hashes |
python -c 'import crypt; print crypt.crypt("F1r3ball2016", "$5$jhaProxy")' |
Dieser Befehl generiert ein neues SHA256 Hash für das Passwort "F1r3ball2016" unter Benutzung des Salt-Wertes "jhaProxy". Dieser Hash kann dann für den entsprechenden Benutzer eingesetzt werden. Der Benutzerbereich in der Konfigurationsdatei sieht folgendermaßen aus:
Code Block |
---|
title | Benutzerbereich in /etc/haproxy/haproxy.cfg |
---|
|
userlist stats-auth
user admin password $5$jhaProxy$rd33gRtd4Wt5UyIclODlyjinSeH4N2DjLtKk33PNZH.
user jtel password $5$jhaProxy$rd33gRtd4Wt5UyIclODlyjinSeH4N2DjLtKk33PNZH.
user user password $5$jhaProxy$.saE3wsZ9AzbDMk2jW9WWQqm.4.vgyZCjFdCf5dAKD6
group admin users admin,jtel
group readonly users user |
Anpassung der URL Umleitungen
Die Konfigurationsvorlage stellt drei URL-Umleitungen zu Verfügung um den komfortablen Zugriff auf die Login Masken für den System-Administrator Login, den normalen Benutzer-Login und den normalen Benutzer-Login für den Mini Client zu ermöglichen. Dies erfordert allerdings eine Anpassung an dem Bereich acdportal_http
bzw. acdportal_https
:
Code Block |
---|
title | Anpassung der URL-Umleitungen |
---|
|
redirect location /CarrierPortal/login/RESELLER/CLIENT if root_req
redirect location /CarrierPortal/mclogin/RESELLER/CLIENT if mini_req |
Hier sind die Zeichenketten RESELLER
bzw. CLIENT
respektive mit der "Reseller UID" und der "Client UID" des Standardmandanten zu ersetzen. Werden diese bei der Einrichtung des Kundensystems nicht spezifisch angepasst, so lauten beide "default".
Anpassung der Backend-Listen
Die Liste der Web-Applikationsserver auf die die Anfrage verteilt werden sollen, wird in der Konfigurationsdatei in zwei getrennten Bereichen gepflegt. Der folgende Bereich ist zuständig für die Verteilung aller Aufrufe auf das Portal:
Code Block |
---|
title | Backend Bereich für das Web Portal |
---|
|
backend jtel_portal
mode http
compression algo gzip
compression type text/xml text/html text/plain text/css text/javascript
cookie SERVERID insert indirect nocache
appsession JSESSIONID len 32 timeout 3600000
balance leastconn # roundrobin
server jboss1 192.168.1.31:8080 weight 1 cookie jboss1 check inter 1m
server jboss2 192.168.1.32:8080 weight 1 cookie jboss2 check inter 1m |
Hier sind entsprechend der Systemarchitektur alle Web-Applikationsserver einzutragen, die das Web-portal (auch Mini Client) zur Verfügung stellen sollen. Für jeden Server ist eine "server"-Zeile zu erstellen. Dabei ist darauf zu achten, eindeutige interne Namenskennzeichnungen und cookie-Werte zu verwenden (im obigen Fall "jbossX" wobei X durchnummeriert wird).
Der folgende Bereich ist hingegen zuständig für die Verteilung aller SOAP Anfragen:
Code Block |
---|
title | Backend Bereich für das SOAP Interface |
---|
|
backend jtel_soap
mode http
compression algo gzip
compression type text/xml text/html text/plain text/css text/javascript
balance leastconn # roundrobin
stick-table type ip size 20k
stick on src
server jboss1 192.168.1.31:8081 weight 1 cookie jboss1 check inter 1m
server jboss2 192.168.1.32:8081 weight 1 cookie jboss2 check inter 1m |
Auch hier sind entsprechend der Systemarchitektur alle Web-Applikationsserver einzutragen, die das SOAP Interface zur Verfügung stellen sollen. Für jeden Server ist eine "server"-Zeile zu erstellen. Dabei ist darauf zu achten, eindeutige interne Namenskennzeichnungen und cookie-Werte zu verwenden (im obigen Fall "jbossX" wobei X durchnummeriert wird). Diese Server sind in der Regel die gleichen, die auch für den Portal-Zugriff verwendet werden. In großen Installationen können hierfür aber auch dedizierte Web-Applikationsserver angegeben werden.
Note |
---|
|
Ein wichtiger Unterschied zwischen der HTTP under HTTPS Version der Konfigurationsdatei, liegt in dem Port zu dem SOAP Anfragen geleitet werden. Erfolgt der Zugriff über HTTPS, so werden alle Anfrage zu den Web-Application Server auf Port 8081 geleitet. Dieser Connector ist so konfiguriert, dass der JBOSS-Server weiss, dass die originalen Anfragen über HTTPS hereingekommen sind, und die zurück gegebene URLs (wie z.B. im WSDL) mit dem entsprechenden Schema versieht, auch wenn die Kommunikation zwischen haproxy und Backend nur über HTTP läuft. In der reinen HTTP-Version der Konfigurationsvorlage werden die Anfragen hingegen zu Port 8080 geleitet. |
Starten des haproxy-Dienstes
Nach dem alle Konfigurationsanpassungen getätigt wurden, kann der haproxy-Dienst gestartet werden:
Code Block |
---|
language | bash |
---|
title | Starten des haproxy Dienstes |
---|
|
service haproxy start |
Im Anschluss sollte geprüft werden, ob der Dienst auch tatsächlich läuft. Ist dies nicht der Fall, kann die Log-Datei Aufschluß über eventuelle Konfigurationsfehler geben.
Bei Konfigurationsänderungen kann der haproxy DIenst im laufenden Betrieb mittels folgendem Befehl seine Konfiguration aktualisieren:
Code Block |
---|
language | bash |
---|
title | Aktualisieren der Konfiguration im Betrieb |
---|
|
service haproxy reload |
Ein finaler Test gibt Aufschluss über den Erfolg der Installation. Da zu diesem Zeitpunkt die UID Werte des Reseller und Mandanten noch nicht umbenannt wurden, empfiehlt sich der Aufruf der URL für den Admin-Login: http://acd-lb.example.com/admin welcher im Erfolgsfall zur Login-Maske des Portals führt.
Image Removed
Weiterführende Links
haproxy service autostart |
| chkconfig haproxy on |
|
Configuration du pare-feuEnsuite, les parts de port pour le service haproxy doivent être saisies et stockées de façon permanente dans le pare-feu Translations Ignore |
---|
Code Block |
---|
language | bash |
---|
title | Configurer le parefeu |
---|
| firewall-cmd --zone=public --add-port=80/tcp --permanent firewall-cmd --zone=public --add-port=443/tcp --permanent firewall-cmd --zone=public --add-port=7777/tcp --permanent firewall-cmd --reload |
|
Configuration SeLinuxPour permettre à l'haproxy d'ouvrir des ports arbitraires, une configuration SeLinux doit être effectuée : Translations Ignore |
---|
Code Block |
---|
language | bash |
---|
title | Configuration SeLinux |
---|
| setsebool -P haproxy_connect_any=1 semanage permissive -a haproxy_t |
|
Journal haproxyPour enregistrer la sortie du journal du service haproxy via le service central de journalisation dans un fichier journal séparé, les commandes suivantes doivent être exécutées : Translations Ignore |
---|
Code Block |
---|
language | bash |
---|
title | Adaptation du service syslog |
---|
| sed -i -e 's/#$ModLoad *imudp/$ModLoad imudp/' -e 's/#$UDPServerRun *514/$UDPServerRun 514/' /etc/rsyslog.conf cat <<EOFF>/etc/rsyslog.d/haproxy.conf local2.* /var/log/haproxy.log EOFF service rsyslog restart |
|
|
...