Backup Mailserver mit nginx

slashwalker

New Member
Hallo,
nginx ist ja neben HTTP Server auch ein Mail-Server/-Proxy.

Nun gibt es ja bei nginx die Möglichkeit so genannte upstreams zu definieren:

upstream web{
server 192.168.1.2 weight=10 max_fails=3 fail_timeout=30s;
server 192.168.1.3 weight=1 backup;
}

Dadurch werden Anfragen an 192.168.1.2 geleitet, es sei denn der ist down, dann springt der 192.168.1.3 ein.

Nun wäre meine Idee, so einen upstream für Mailserver einzurichten.
192.168.1.2 : nginx
192.168.1.3 : postfix/dovecot
192.168.1.4 : postfix/dovecot

upstream mail{
server 192.168.1.3 weight=10 max_fails=3 fail_timeout=30s;
server 192.168.1.4 weight=1 backup;
}

DNS würde ich dann so machen:
IN MX 100 mail.example.org.
mail IN A 192.168.1.2

nginx soll die Anfragen nur durchreichen. Die Authentifizierung etc. soll der Mailserver abwickeln.
Haut das überhaupt hin?
Wenn ja, weiß jemand ein Beispiel/Tutorial? Habe im Netz nix brauchbares gefunden.

Sinn und Zweck der Aktion ist es, einen zweiten Mailserver als Ausfallschutz zu haben, ohne auf unterschiedliche MX/A Records zu verweisen.
 
Last edited by a moderator:
Das eher doof, wenn der nginx Server down ist, dann geht auch gar nix mehr mit Mail.

Ich würde hier entweder schauen dass Du MX Einträge benutzt (mein Favorit!), oder zumindest nginx (warum eigentlich für smtp loadbalancing? *grübel*) redundant machst.

Schonmal haproxy angeschaut? Ich mag nginx wirklich gerne für web, aber smtp? :rolleyes:

Grüsse
Basti
 
nginx kam mir halt spontan in den Sinn, da ich hier eh gerade mit den Reverse Proxy Funktionen experimentiere.

Klar muss es dann zwei redundante Proxies geben, aber das ist dann ja der zweite Schritt.
Allerdings möchte ich kein klassisches Loadbalancing. Server 2 soll nur einspringen, wenn Server 1 down ist.
Ansonsten soll Server 1 alleine arbeiten.

MX möchte ich vermeiden, da ich hier zwei Möglichkeiten habe:

1. Für mail.example.org zwei A Records auf verschiedene IPs.
Bringt aber nicht den Effekt, den ich haben möchte.

2. Zwei unterschiedliche MX und Hostnamen
mail1.example.org
mail2.example.org
Jeweils als MX und A Record.
Hier müsste ich im Falle eines Ausfalls alle E-Mail Clients umstellen -> doof
 
Last edited by a moderator:
Mit redundanten Proxys würde das gehen. Aber wie synchronisierst Du die Mails auf den postfix/dovecot Kisten? DRBD, imapsync, rsync?

Sonst schalten zwar die Clients ohne Umstellung um, aber haben keine Mails vor der Nase :)

Grüsse
 
Okay sry hatte wenig Zeit,
Ich habe da eine Frage und zwar würde es so gehen wenn ich die konfiguration so einstelle:
upstream web {
server 192.168.1.1 weight=5 max_fails=3 fail_timeout=30s;
server 192.168.1.2 backup;
server 192.168.1.3 backup;
server 192.168.1.4 backup;
server 192.168.1.5 backup;
server 192.168.1.6 backup;
}
server {
server_name www.domain.tld domain.tld;
location / {
proxy_pass http://web;
}
Im grund genommen möchte ich das so:
Habe 6 Server
1 MasterServer
2 Backup & Load balanced konfiguriert
3 Backup & Load balanced konfiguriert
4 Backup & Load balanced konfiguriert
5 Backup & Load balanced konfiguriert
6 Backup & Load balanced konfiguriert
also Load balanced konfiguriert...
Meinte damit dass trotzdem Lastverteilung besteht, auch wenn mal 1 Server ausfällt kommt dann der 2. server ins Spiel daher kommt die Backup modi.
 
Last edited by a moderator:
So, und jetzt bitte nochmal langsam, deutlich und vor allem mit Groß- und Kleinschreibung und Satzzeichen.

Ich hab jedenfalls nicht kapiert was Du willst :confused:
 
Back
Top