Nginx Serverwahl

ClocxHD

Lt. Junior Grade
Registriert
Aug. 2014
Beiträge
376
Hallo,

ist es möglich, folgendes mit Nginx hinzubekommen:
Wenn ich auf server1.dyndns-adresse.de gehe, soll mir der Content vom Webserver 1 (z.B. mit der IP 10.0.3.1) angezeigt werden.
Wenn ich auf server2.dyndns-adresse.de gehe, soll mit der Content vom Webserver 2 (z.B. mit der IP 10.0.3.2) angezeigt werden.
Das wäre ja so ähnlich, wie Load Balancing, nur dass ich dann den Server wählen kann.

Mit freundlichen Grüßen
ClocxHD
 
Sollte machbar sein, Stichwort: Nginx Reverse Proxy.
Ich würde es aber so machen:

Domain anlegen und die Reversproxys deiner Domain bekannt geben (Loadbalance).
Und die einzelnen Reversproxys connecten zum backendserver um die daten zu holen. Also quasi das Prinziep von Cloudflare.
 
Zuletzt bearbeitet:
Einen Nginx-Reverse-Proxy setze ich bereits ein, deshalb habe ich daran gedacht ;)
Da ich aber DynDNS benutze, wird das ein bisschen schwer sein (durch die Firewall kommt ja nur einmal der Port 80)
 
hm mit Dyndns kenne ich mich nicht aus, keine ahnung ob man das dort vernünftig einstellen kann. Aber bei No-Ip.org sollte es möglich sein. Und wenn nicht, würde ich einen kleinen Server bei Isgenug (OVH) mieten für 5,-.
 
Aber kann ich Nginx denn sagen:
Wenn der Besucher von adresse.de/server1 kommt, zeige den Inhalt vom Webserver 10.0.3.1,
Wenn der Besucher von adresse.de/server2 kommt, zeige den Inhalt vom Webserver 10.0.3.2?
 
Sollte möglich sein mittels redirect.
 
Aber wenn ich redirect benutze, leitet er mich ja nur weiter, und von außen bringt mir die IP 10.0.3.1 ja nichts.
Ich versuche es mal mit dem Reverse Proxy, melde mich, wenn ich es geschafft/nicht geschafft habe
 
Jo, machbar ist es auf jeden Fall. Ich hatte es auch schon mal mit vielen echten VPS Servern hinbekommen, aber wie das ging kann ich dir grad nicht mehr ausm stehgreif erzählen.
 
Ich habe es jetzt folgendermaßen versucht, aber es funktioniert nicht:
Code:
if ($http_host = "ubuntu15.srv/server1") {
		proxy_pass http://debian.srv:80;
}

if ($http_host = "ubuntu15.srv/server2") {
		proxy_pass http://pi.srv:80;
}
Nginx stürzt mit folgender Fehlermeldung ab:
[emerg] 5138#0: "proxy_pass" directive is not allowed here in /etc/nginx/sites-enabled/default:21
 
Ich geb dir mal das als denkanstoß. Ist bei mir schon länger her das ich das mal gemacht hatte.
Das wäre so eine config um zu einen anderen backendserver zu connecten um von dort die daten zu holen.

Code:
server {
        listen       443;
        server_name  domain.oder.ip;

        ssl                  on;
        ssl_certificate      /etc/nginx/SSL/SSL_CERTS_gehtnixan.crt;
        ssl_certificate_key  /etc/nginx/SSL/SSL_CERTS_gehtnixan/gehtnixan.key;

        ssl_session_timeout  5m;

        ssl_protocols  SSLv2 SSLv3 TLSv1;
        ssl_ciphers  HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers   on;

    location / {
            proxy_pass         https://ip:port;
            proxy_redirect     off;
            proxy_set_header   Host             domain.oder.ip;
            proxy_set_header   X-Real-IP        $remote_addr;

            client_max_body_size       10m;
            client_body_buffer_size    128k;
            proxy_connect_timeout      60;
            proxy_send_timeout         60;
            proxy_read_timeout         60;
            proxy_buffer_size          16k;
            proxy_buffers              4 32k;
            proxy_busy_buffers_size    64k;
            proxy_temp_file_write_size 64k;

           
        }
    }
 
Zuletzt bearbeitet:
Wie ich das mit einem Server mache, weiß ich, jedoch nicht mit zwei
 
Wenn ich dich richtig verstehe, brauchst du doch nur den "server_name domain.oder.ip;" ändern.
 
Zuletzt bearbeitet:
Wenn ich das machen würde, würden Anfragen von beiden Subdomains an einen Proxy weitergeleitet werden.
Ich möchte aber an Hand der Subdomains den Proxy auswählen
 
Zurück
Oben