...
...
Diagramme Gliffy |
---|
name | bm-edge-role-principe |
---|
|
Procédure de déploiementInstaller BlueMind sur le serveur principal en suivant la procédure habituelle Remarque |
---|
L'espace de stockage des backups de BlueMind doit être accessible sur ce nouveau serveur sous /var/backups/bluemind |
installer la souscription sur le serveur secondaire en tant que fichier Info |
---|
Rappel : le fichier texte correspondant à la souscription peut être installé manuellement sur un serveur - pour Ubuntu / Debian en tant que
/etc/apt/sources.list.d/bm.list - pour RedHat / CentOS en tant que
/etc/yum.repos.d/bm.repo
|
installer le paquet bm-edge-role sur le serveur
|
...
Bloc de code |
---|
# Ubuntu / Debian
proxy.bluemind.loc:~$ sudo aptitude update
proxy.bluemind.loc:~$ sudo aptitude install bm-edge-role
# RedHat / CentOS
proxy.bluemind.loc:~$ sudo yum makecache
proxy.bluemind.loc:~$ sudo yum install bm-edge-role |
...
edge : Tabs group |
---|
border | all-sides |
---|
navcolor | navy |
---|
| Debian/UbuntuRedHat/CentOS |
- ajouter le rôle de relai smtp au serveur edge dans le panneau d'administration du serveur principal :
- se connecter à BlueMind sur le serveur principal avec l'utilisateur admin0@global.virt
- naviguer dans Gestion du système > Serveurs de l'application
Image Added - cliquer sur le bouton Nouveau > Serveur
|
...
- remplir les informations du nouveau serveur et cliquer sur Créer
|
...
- Image Added
cliquer sur "Créer & éditer" ou sur "Créer" puis, une fois de retour à la liste des serveurs, cliquer sur la ligne correspondant
|
...
- à celui-ci
- dans l'onglet Rôles du serveur, cocher la case Relai de messagerie puis cliquer sur le bouton Enregistrer
|
...
- Image Added
- dans la liste des serveurs, le serveur
|
...
- edge apparaît bien avec le tag lié au
|
...
- relai de messagerie mail/smtp-edge
|
...
- Image Added
- configurer le domaine pour utiliser
|
...
...
...
...
- utilisateur admin0@global.virt, naviguer dans Gestion du Système > Domaines supervisés
- cliquer sur la ligne correspondant au domaine à configurer
- dans l'onglet Messagerie, sélectionner le serveur
|
...
...
- Relai de messagerie puis cliquer sur Enregistrer :
|
...
- Image Added
- configurer le serveur pour envoyer les mails sortant à travers le
|
...
- relai :
- toujours en tant que l'utilisateur admin0@global.virt, naviguer dans Gestion du Système > Configuration Système
- dans l'onglet Messagerie, remplir le champ
|
...
- Relai avec l'adresse IP ou le nom d'hôte du serveur
|
...
- edge puis cliquer sur Enregistrer :
Image Added |
...
...
l'accès web- Se connecter en tant que root sur le serveur
|
...
- edge
naviguer jusqu'au dossier /etc/nginx/sites-available
|
...
bm35-edge.bluemind.loc:~# cd /etc/nginx/sites-available |
créer un fichier de configuration bm-proxy et l'éditer, par exemple avec vim :
|
...
bm35-edge.bluemind.loc:/etc/nginx/sites-available# vim bm-proxy |
ajouter les lignes suivantes : Bloc de code |
---|
server {
listen 80;
# <url_externe_bluemind> désigne l'url externe à laquelle les utilisateurs se connectent
server_name <url_externe_bluemind>;
location / {
return 301 https://<url_externe_bluemind>$request_uri;
}
}
server {
listen 443;
server_name <url_externe_bluemind>;
ssl on;
ssl_certificate /etc/ssl/certs/bm_cert.pem;
ssl_certificate_key /etc/ssl/certs/bm_cert.pem;
ssl_session_timeout 5m;
ssl_prefer_server_ciphers on;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers 'EDH+CAMELLIA:EDH+aRSA:EECDH+aRSA+AESGCM:EECDH+aRSA+SHA256:EECDH:+CAMELLIA128:+AES128:+SSLv3:!aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!DSS:!RC4:!SEED:!IDEA:!ECDSA:kEDH:CAMELLIA128-SHA:AES128-SHA';
add_header Strict-Transport-Security max-age=15768000; # six months
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
location / {
# <srv_interne> est le serveur BlueMind principal
proxy_pass https://<srv_interne>;
}
location /webmail/ {
client_max_body_size 0m;
proxy_pass https://<srv_interne>/webmail/;
}
location /Microsoft-Server-ActiveSync {
proxy_pass https://<srv_interne>/Microsoft-Server-ActiveSync;
proxy_read_timeout 1200s;
proxy_headers_hash_bucket_size 128;
proxy_headers_hash_max_size 2048;
client_max_body_size 10m;
proxy_pass_header Server;
}
location /eventbus {
proxy_pass https://<srv_interne>;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
location /api/filehosting/ {
client_max_body_size 0m;
proxy_pass https://<srv_interne>$request_uri;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_http_version 1.1;
proxy_buffering off;
}
location /api/attachment/ {
client_max_body_size 0m;
proxy_pass https://<srv_interne>$request_uri;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_http_version 1.1;
proxy_buffering off;
}
location /fh/ {
proxy_pass https://<srv_interne>/fh/;
proxy_http_version 1.1;
proxy_buffering off;
}
}
|
- sauvegarder le fichier et quitter l'éditeur
exécuter les commandes suivantes pour mettre en place la configuration :
|
...
bm35-edge.bluemind.loc:/etc/nginx/sites-available# ln -s /etc/nginx/sites-available/bm-proxy /etc/nginx/sites-enabled/
|
|
...
bm35-edge.bluemind.loc:/etc/nginx/sites-available# rm /etc/nginx/sites-enabled/default |
recharger la configuration du serveur nginx :
|
...
...
title | Commande pour BlueMind 3.0.x |
---|
...
proxy.bluemind.loc:/etc/nginx/sites-available# service nginx reload
...
border | all-sides |
---|
navcolor | navy |
---|
|
|
...
Proxy Nginx et messagerie
...
Configuration de la messagerie |
...
edge, copier le fichier de configuration du serveur principal situé à l'emplacement /etc/nginx/global.d/bm-proxy-mail.conf
|
...
. Il est possible pour cela d'utiliser scp
|
...
...
bm35-edge.bluemind.loc:~# scp root@srv1.bluemind.loc:/etc/nginx/global.d/bm-mail-proxy.conf /etc/nginx/global.d/ |
éditer le fichier /etc/nginx/global.d/bm-mail-proxy.conf sur le serveur
|
...
edge et remplacer l'adresse IP de la ligne auth_http par l'adresse IP du serveur principal recharger la configuration nginx : Tabs group |
---|
border | all-sides |
---|
navcolor | navy |
---|
| BlueMind 3.5.xBlueMind 3.0.x |
|
...
Configuration XMPPPour que le serveur prenne en charge la gestion du flux XMPP : créer le fichier /etc/nginx/global.d/bm-xmpp-proxy.conf avec le contenu suivant : Bloc de code |
---|
stream {
upstream backend_xmpp {
least_conn;
server 1.2.3.4:5222;
server 1.2.3.5:5222 backup;
}
server {
listen 5222;
proxy_pass backend_xmpp ;
}
} |
en remplaçant 1.2.3.4 par l'adresse IP du serveur principal, ou du serveur ayant le rôle XMPP s'il y a lieu Recharger la configuration nginx : Tabs group |
---|
border | all-sides |
---|
navcolor | navy |
---|
| BlueMind 3.5.xBlueMind 3.0.x |
|
Enregistrer
Enregistrer
Enregistrer
Enregistrer
Proxy ApacheIl est aussi possible d'utiliser Apache comme proxy à la place de Nginx. Pour cela, il faudra utiliser une version >=2.4 d'Apache et activer les modules suivant : - mod_ssl
- mod_proxy et mod_proxy_wstunnel
- mod_rewrite
Exemple de VirtualHost pour Apache : Bloc de code |
---|
<VirtualHost *:80>
Redirect / https://<url_externe_bluemind>/
</VirtualHost>
<VirtualHost *:443>
SSLEngine On
SSLCertificateFile "/etc/ssl/certs/bm_cert.pem"
SSLCertificateKeyFile "/etc/ssl/certs/bm_cert.pem"
SSLProxyEngine On
SSLProxyCheckPeerCN Off
SSLProxyCheckPeerName Off
SSLProxyVerify none
# Websocket proxy
RewriteEngine on
RewriteCond %{HTTP:UPGRADE} ^WebSocket$ [NC]
RewriteCond %{HTTP:CONNECTION} Upgrade$ [NC]
RewriteRule .* wss://<srv_interne>%{REQUEST_URI} [P]
ProxyPreserveHost On
<Location />
ProxyPass https://<srv_interne>/
ProxyPassReverse https://<srv_interne>/
</Location>
</VirtualHost> |
Enregistrer Enregistrer Enregistrer Enregistrer Enregistrer |
Sv translation |
---|
|
Diagramme Gliffy |
---|
name | bm-edge-role-principe |
---|
|
Roll-out procedureInstall BlueMind on the main server following the usual procedure
Remarque |
---|
The storage space for BlueMind backups must be accessible on this new server at /var/backups/bluemind |
Install the subscription on the secondary server as a file Info |
---|
Reminder: the text file for the subscription can be installed manually on a server - for Ubuntu / Debian as /etc/apt/sources.list.d/bm.list
- for RedHat / CentOS as /etc/yum.repos.d/bm.repo
|
Installer the package bm-edge-role on the edge server: Tabs group |
---|
border | all-sides |
---|
navcolor | navy |
---|
| Debian/UbuntuRedHat/CentOS |
- Add the smtp relay role to the edge server in the main server's admin panel:
- log into BlueMind on the main server as admin0@global.virt
- browse to System management > Application servers
Image Added - click New > Host
- fill in the information for the new server:
Image Added - click "Create & edit" or "Create" then click the corresponding row to edit it
- in the Server roles tab, check the Mail relay box then click Save:
Image Added - back in the servers list, the server is shown with the mail relay tag mail/smtp-edge:
Image Added
- Set up the domain so that the edge server is used as a mail relay:
- still signed in as admin0@global.virt, browse to System management > Manage domains
- click the row for the domain you want to configure
- in the Mail system tab, select the edge server you have created as mail server and click Save:
Image Added - Set up the server to send outgoing messages through the relay:
- still signed in as admin0@global.virt, browse to System Management > System Configuration
- in the Mail tab, fill in the Relay host field with the IP address or the edge server's host name and click Save:
Image Added
NginxSetting up web access- Log in as root in the edge server
Browse to the folder /etc/nginx/sites-available : Bloc de code |
---|
bm35-edge.bluemind.loc:~# cd /etc/nginx/sites-available |
Create a configuration file bm-proxy and edit it, e.g. using vim: Bloc de code |
---|
bm35-edge.bluemind.loc:/etc/nginx/sites-available# vim bm-proxy |
Add the following command lines: Bloc de code |
---|
server {
listen 80;
# <url_externe_bluemind> is the external url users connect to
server_name <url_externe_bluemind>;
location / {
return 301 https://<url_externe_bluemind>$request_uri;
}
}
server {
listen 443;
server_name <url_externe_bluemind>;
ssl on;
ssl_certificate /etc/ssl/certs/bm_cert.pem;
ssl_certificate_key /etc/ssl/certs/bm_cert.pem;
ssl_session_timeout 5m;
ssl_prefer_server_ciphers on;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers 'EDH+CAMELLIA:EDH+aRSA:EECDH+aRSA+AESGCM:EECDH+aRSA+SHA256:EECDH:+CAMELLIA128:+AES128:+SSLv3:!aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!DSS:!RC4:!SEED:!IDEA:!ECDSA:kEDH:CAMELLIA128-SHA:AES128-SHA';
add_header Strict-Transport-Security max-age=15768000; # six months
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
location / {
# <srv_interne> is the main BlueMind server
proxy_pass https://<srv_interne>;
}
location /webmail/ {
client_max_body_size 0m;
proxy_pass https://<srv_interne>/webmail/;
}
location /Microsoft-Server-ActiveSync {
proxy_pass https://<srv_interne>/Microsoft-Server-ActiveSync;
proxy_read_timeout 1200s;
proxy_headers_hash_bucket_size 128;
proxy_headers_hash_max_size 2048;
client_max_body_size 10m;
proxy_pass_header Server;
}
location /eventbus {
proxy_pass https://<srv_interne>;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
location /api/filehosting/ {
client_max_body_size 0m;
proxy_pass https://<srv_interne>$request_uri;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_http_version 1.1;
proxy_buffering off;
}
location /api/attachment/ {
client_max_body_size 0m;
proxy_pass https://<srv_interne>$request_uri;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_http_version 1.1;
proxy_buffering off;
}
location /fh/ {
proxy_pass https://<srv_interne>/fh/;
proxy_http_version 1.1;
proxy_buffering off;
}
}
|
- Save file and exit the editor
Run the following commands to set up the configuration: Bloc de code |
---|
bm35-edge.bluemind.loc:/etc/nginx/sites-available# ln -s /etc/nginx/sites-available/bm-proxy /etc/nginx/sites-enabled/
bm35-edge.bluemind.loc:/etc/nginx/sites-available# rm /etc/nginx/sites-enabled/default |
Reload the nginx server configuration: Tabs group |
---|
border | all-sides |
---|
navcolor | navy |
---|
| BlueMind 3.5.xBlueMind 3.0.x |
Setting up mail serviceOn the edge server, copy the main server's configuration file located at /etc/nginx/global.d/bm-proxy-mail.conf . You can use scp to do this: Bloc de code |
---|
bm35-edge.bluemind.loc:~# scp root@srv1.bluemind.loc:/etc/nginx/global.d/bm-mail-proxy.conf /etc/nginx/global.d/ |
Edit the file /etc/nginx/global.d/bm-mail-proxy.conf on the relay server and replace the IP address in the line auth_http by the main server's IP address Reload the nginx configuration: Tabs group |
---|
border | all-sides |
---|
navcolor | navy |
---|
| BlueMind 3.5.xBlueMind 3.0.x |
Setting up XMPPFor the server to manage the XMPP flow: create a file /etc/nginx/global.d/bm-xmpp-proxy.conf with the following contents: Bloc de code |
---|
stream {
upstream backend_xmpp {
least_conn;
server 1.2.3.4:5222;
server 1.2.3.5:5222 backup;
}
server {
listen 5222;
proxy_pass backend_xmpp ;
}
} |
and replacing 1.2.3.4 by the main server's IP address or the server with the XMPP role if appropriate Reload the nginx configuration: Tabs group |
---|
border | all-sides |
---|
navcolor | navy |
---|
| BlueMind 3.5.xBlueMind 3.0.x |
ApacheIl est aussi possible d'utiliser Apache comme proxy à la place de Nginx. Pour cela, il faudra utiliser une version >=2.4 d'Apache et activer les modules suivant : - mod_ssl
- mod_proxy et mod_proxy_wstunnel
- mod_rewrite
Exemple de VirtualHost pour Apache : Bloc de code |
---|
<VirtualHost *:80>
Redirect / https://<url_externe_bluemind>/
</VirtualHost>
<VirtualHost *:443>
SSLEngine On
SSLCertificateFile "/etc/ssl/certs/bm_cert.pem"
SSLCertificateKeyFile "/etc/ssl/certs/bm_cert.pem"
SSLProxyEngine On
SSLProxyCheckPeerCN Off
SSLProxyCheckPeerName Off
SSLProxyVerify none
# Websocket proxy
RewriteEngine on
RewriteCond %{HTTP:UPGRADE} ^WebSocket$ [NC]
RewriteCond %{HTTP:CONNECTION} Upgrade$ [NC]
RewriteRule .* wss://<srv_interne>%{REQUEST_URI} [P]
ProxyPreserveHost On
<Location />
ProxyPass https://<srv_interne>/
ProxyPassReverse https://<srv_interne>/
</Location>
</VirtualHost> |
|
...