Reverse Proxy auf einem Raspi

Begonnen von moonsorrox, 23 Mai 2018, 12:42:22

Vorheriges Thema - Nächstes Thema

moonsorrox

Hier nun der Thread zu einem Reverse Proxy mit einem Raspi mit der Einrichtung zu mehreren Weiterleitungen.
Meine Frage war folgende:
ZitatIch habe das ebenso eingerichtet bei mir funktioniert aber leider nur eine Weiterleitung.
Ich habe auch auf einem Raspi ein nginx dort auch mit Passwort und User und letsencrypt
meinedomain.de/fhem -> FHEM geht also

aber eine zweite z.B. in der Form "meinedomain.de/webhook -> Geofency" funktioniert nicht.
Ich habe das ganze nach einer Anleitung aus dem Internet eingerichtet, weil ich auch nicht der Freak bin was Revrse Proxy betrifft.
Das war alles für mich Neuland...
Läuft das bei auch auf Port 443..?

Ich suche jetzt erst einmal die NGINX-Config da ich da nicht so oft dran bin arbeite ich mich erst mal durch  ;)
Intel-NUC i5: FHEM-Server 6.1 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM

Wernieman

Wahrscheinlich unter:
/etc/nginx/sites-enabled

Prüfe bitte auch folgendes (sollte bei Dir leer sein)
/etc/nginx/conf.d
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

moonsorrox

#2
Ich sage erst einmal Danke, denn ich muss los. Werde später alles hier rein stellen...!  ;)
Doch schnell noch hier die config
server {
        listen 80;
        listen [::]:80;

        server_name www.fhem.XXXXXXX.de;

    include /etc/nginx/snippets/letsencrypt.conf;

        # Redirect any HTTP request to HTTPS
        location / {
        return 301 https://www.fhem.XXXXXXXXXXXXXXXXXXXXXX.de;}

        error_log  /var/log/nginx/XXXXXXXXXXXXXXXXXXXXXX.de-error.log;
        access_log /var/log/nginx/XXXXXXXXXXXXXXXXXXXXXX.de-access.log;
}


/etc/nginx/conf.d
Das ist ja bei mir ein Verzeichnis und in diesem ist die folgende Datei drin "fhem.XXXXXXXXXXXXXXXXXXXXXX.de.conf"
Brauchst du die auch oder darf die da evtl. gar nicht sein..?
Intel-NUC i5: FHEM-Server 6.1 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM

Wernieman

#3
1. Anonymisiere bitte ....
2. Warum machst DU einen 301? Das ist kein Proxy, sondern ein redirekt ....
......
3. Dein Server ist so im Netz erreichbar ....
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

moonsorrox

1. gemacht Danke, habe ich vergessen ;)
2. gute Frage ich habe es seinerzeit einfach nachgebaut..
3. ja ich komme per HTTPS://xxxxxxxxxxxxxxx.de drauf mit User und Passwort
Intel-NUC i5: FHEM-Server 6.1 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM

Wernieman

Ich brauchte kein User/Passwort ..... jedenfalls nicht für die erste Seite ...

Eigentich steht in der nginx-config so etwas:
server {
    listen      80 default_server;
    listen      [::]:80 default_server;
    server_name default_server;

    root /usr/share/nginx/html;
    index index.html index.htm;

    access_log  /var/log/nginx/default.access.log;
    error_log   /var/log/nginx/default.error.log;

    # Sicherheit
    server_tokens off;
    add_header Strict-Transport-Security 'max-age=31536000; includeSubDomains' always;

    # Für LetsEncrypt
    location ~ /\.well-known {
        root /usr/share/nginx/html;
    }

    # Alles andere auf https://
    location / {
        try_files $uri $uri/ =404;
        return 301 https://$host$request_uri;
    }
}

server {
    listen      443 ssl http2;
    listen [::]:443 ssl http2;
    server_name MeinTollerServerName;

    ssl_certificate_key /etc/letsencrypt/live/MeinTollerServerName/privkey.pem;
    ssl_certificate     /etc/letsencrypt/live/MeinTollerServerName/fullchain.pem;

    root        /usr/share/nginx/html;
    index       index.html index.htm;

    access_log  /var/log/nginx/MeinTollerServerName.access.log;
    error_log   /var/log/nginx/MeinTollerServerName.error.log;

    # Sicherheit
    server_tokens off;
    add_header Strict-Transport-Security 'max-age=31536000; includeSubDomains' always;

    # Normalerweise alles nur nach Login
    location / {
        auth_basic              "Restricted Content";
        auth_basic_user_file    /etc/nginx/.htpasswd;

        proxy_set_header        Host $host;
        proxy_set_header        X-Forwarded-Host $host;
        proxy_set_header        X-Forwarded-Server $host;
        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass              https://InternerWebServer:443;
        client_max_body_size    128M;
    }


    # Normalerweise alles nur nach Login / Fhem direkt
    location /fhem {
        auth_basic              "Restricted Content";
        auth_basic_user_file    /etc/nginx/.htpasswd;

        proxy_set_header        Host $host;
        proxy_set_header        X-Real-IP $remote_addr;
        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header        X-Forwarded-Proto $scheme;
        proxy_http_version      1.1;

        # if ($http_upgrade = "websocket") {
        #    set $my_http_upgrade $http_upgrade;
        #    set $my_connection "upgrade";
        # }
        # proxy_set_header      Upgrade $my_http_upgrade;
        # proxy_set_header      Connection $my_connection;

        proxy_pass              http://MeinTollerFhemServer:8083;
        proxy_read_timeout      90;
        proxy_buffering         off;
        client_max_body_size    128M;
    }
}


Config sollte so adaptierbar (und verbesserbar) sein ...
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

moonsorrox

#6
OK ich habe die erst einmal gespeichert. Werde sie dann anpassen
Aber zum Verständnis muss ich nochmal ein paar Fragen stellen.

1. Eine nginx-conf gibt es bei mir nicht, ist evtl. die ngix.conf unter /etc/nginx gemeint, aber die sieht eben ganz anders aus..! damit ist diese wohl nicht gemeint..!

2. /etc/nginx/conf.d/ ist ein Verzeichnis richtig..?
da ist eine Datei drin die heißt fhem.xxxxxxxxxxxxx.de.conf mit folgendem Inhalt
server {
    server_tokens off;

    ## Blocken, wenn Zugriff aus einem nicht erlaubten Land erfolgt ##
    if ($allowed_country = no) {
        return 403;
    }

    # https://www.cyberciti.biz/tips/linux-unix-bsd-nginx-webserver-security.html
    ## Block download agents ##
    if ($http_user_agent ~* LWP::Simple|BBBike|wget) {
        return 403;
    }

    ## Block some robots ##
    if ($http_user_agent ~* msnbot|scrapbot) {
        return 403;
    }

    ## Deny certain Referers ##
    if ( $http_referer ~* (babes|forsale|girl|jewelry|love|nudit|organic|poker|porn|sex|teen) )
    {
        return 403;
    }

    listen 443 ssl default_server;
    server_name xxxxx.xxxxxxxxxxxxxx.de;

    ##
    # SSL
    ##

    ## Activate SSL, setze SERVER Zertifikat Informationen ##
    # Generiert via Let's Encrypt!
    ssl on;
    ssl_certificate /etc/letsencrypt/live/fhem.xxxxxxxxxxxxxx.de/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/fhem.xxxxxxxxxxxxxx.de/privkey.pem;
    ssl_session_cache builtin:1000 shared:SSL:10m;
    ssl_prefer_server_ciphers on;
    # unsichere SSL Ciphers deaktivieren!
    ssl_ciphers    HIGH:!aNULL:!eNULL:!LOW:!3DES:!MD5:!RC4;

    ##
    # HSTS
    ##
   add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;

    ##
    # global
    ##

    root /var/www/fhem.xxxxxxxxxxxxxx.de;
    index index.php index.htm index.html;

    # Weiterleitung zu SmartHomeNG (Websocket Schnittstelle) mit Basic Auth
    location / {
        auth_basic "Restricted Area: fhem";
        auth_basic_user_file /etc/nginx/.fhem;

        # Zugreifendes Land erlaubt?
        if ($allowed_country = no) {
                return 403;
        }

        # Nur Websocket Verbindungen gegen "/" durchlassen!
        if ($http_upgrade = websocket) {
                proxy_pass http://meineIP:8083;
        }
        if ($http_upgrade != websocket) {
                return 403;
        }
    }

    # Zugriff auf die Fhem mit Basic Auth
    location /fhem {
        auth_basic "Restricted Area: FHEM";
        auth_basic_user_file /etc/nginx/.fhem;

        # Zugreifendes Land erlaubt?
        if ($allowed_country = no)  {
                return 403;
        }

        proxy_pass http://meineIP:8083;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }


#    # Zugriff auf die Fhem mit Basic Auth
#    location /webhook {
#        auth_basic "Restricted Area: WEBHOOK";
#        auth_basic_user_file /etc/nginx/.webhook;

#        # Zugreifendes Land erlaubt?
#        if ($allowed_country = no)  {
#                return 403;
#        }

#        proxy_pass http://meineIP:8087;
#        proxy_set_header Host $host;
#        proxy_set_header X-Real-IP $remote_addr;
#        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
#        proxy_set_header X-Forwarded-Proto $scheme;
#    }


   location /webhook/ {
    proxy_pass http://meineIP:8087; # RPI-Monitor auf rasp-reverseproxy #funktioniert

                proxy_set_header Host $host;
                auth_basic "Passwortgeschützter Bereich";
                auth_basic_user_file  "/etc/nginx/.webhook";
                access_log /var/log/nginx/ips.access.log;
                error_log /var/log/nginx/ips.error.log;
    }


}


auch diese sieht etwas anders aus...!!

3. unter /etc/nginx/sites-enabled/ - gibt es eine default Datei ohne Endung wenn ich da drauf klicke lande ich im Ordner  /etc/nginx/sites-available/ da ist meine Datei von weiter oben fhem.xxxxxxxxx-hausautomation auch ohne Endung, deren Inhalt habe ich oben gepostet.


Ich weiß es sind viel Fragen aber ich hatte doch einige Probleme, evtl. ist da irgendwo etwas zuviel drin.
Jetzt muss ich erst einmal wissen was ich alles genau wohin bringe damit ich mir das Teil nicht zerschieße  ;)
letsencrypt läuft noch ca. 2,5 Monate

Evtl. kann da einiges von raus..? und dann beginne ich mit putty die Dateien wieder anzupassen.
Ich kann mir ja alles sichern und wenn es nicht funktioniert wieder zurück spielen.


Also Kurzform für mich.
a. welche Dateien brauche ich..?
b. wohin müssen die..?

Vielen Dank  :)

Intel-NUC i5: FHEM-Server 6.1 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM

CoolTux

Die /etc/nginx/nginx.conf ist die globale Konfigurationsdatei. Dort stehen nur Sachen drin welche alle vhosts betreffen.
Unter /etc/nginx/site-available befinden sich die Konfigurationen der vhosts drin. pro vhost ein Konfigfile.
Scharf schalten tut man das ganze in dem man ein softlink setzt von /etc/nginx/site-available/vhost.conf nach /etc/nginx/site-enable/vhost.conf
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

moonsorrox

OK also ist die vhost.conf die ich brauche und so heißen muss wie meine vhost Datei
z.B.
fhem.muster1-hausautomation.conf
fhem.muster2-hausautomation.conf
fhem.muster3-hausautomation.conf

Meine Datei hat aber keine Endung und das ist richtig..?
Intel-NUC i5: FHEM-Server 6.1 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM

CoolTux

Du hast in der nginx.conf folgende Zeilen

include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;


Bei mir steht in der conf.d gar nichts drin. Alles entscheidende steht unter sites-enabled

(14:32 root@pi-proxy01 sites-enabled) > ls
fhem02-reverseproxy      fhem-reverseproxy          fhemwebhook-reverseproxy  tuxnetwiki-reverseproxy
fhemmobile-reverseproxy  fhemwebhook2-reverseproxy  squidguard                wpad

Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

moonsorrox

OK in der nginx.conf weiter unten steht dann das drin was du gepostet hast kann ich dann wohl alles so lassen...

user www-data;
worker_processes auto;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;

events {
worker_connections 768;
# multi_accept on;
}

http {
    ##
    # GeoIP Settings
    # Nur Länder aus erlaubten IP Bereichen dürfen den ReverseProxy
    # passieren!
    # https://www.howtoforge.de/anleitung/nginx-besucher-mit-dem-geoip-modul-nach-landern-blocken-debianubuntu/
    ##
    geoip_country /usr/share/GeoIP/GeoIP.dat;
    map $geoip_country_code $allowed_country {
        default yes;
        BY no;
        BR no;
        KP no;
        KR no;
        RS no;
        RO no;
        RU no;
        CN no;
        CD no;
        NE no;
        GH no;
        IQ no;
        IR no;
        SY no;
        UA no;
    }

##
# Basic Settings
##

sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
# server_tokens off;

# server_names_hash_bucket_size 64;
# server_name_in_redirect off;

include /etc/nginx/mime.types;
default_type application/octet-stream;

##
# SSL Settings
##

ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE
ssl_prefer_server_ciphers on;

##
# Logging Settings
##

access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;

##
# Gzip Settings
##

gzip on;
gzip_disable "msie6";

# gzip_vary on;
# gzip_proxied any;
# gzip_comp_level 6;
# gzip_buffers 16 8k;
# gzip_http_version 1.1;
# gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;

##
# Virtual Host Configs
##

include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;

##
# Harden nginx against DDOS
    ##

    client_header_timeout 10;
    client_body_timeout   10;
}


#mail {
# # See sample authentication script at:
# # http://wiki.nginx.org/ImapAuthenticateWithApachePhpScript
#
# # auth_http localhost/auth.php;
# # pop3_capabilities "TOP" "USER";
# # imap_capabilities "IMAP4rev1" "UIDPLUS";
#
# server {
# listen     localhost:110;
# protocol   pop3;
# proxy      on;
# }
#
# server {
# listen     localhost:143;
# protocol   imap;
# proxy      on;
# }
#}
Intel-NUC i5: FHEM-Server 6.1 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM

moonsorrox

#11
EDIT:// so nun habe ich es doch hinbekommen, habe jetzt die Passwort Datei angelegt und nun komme ich wieder mit dem User und dem Passwort drauf.
Ich weiß nicht ob das so richtig ist..?

Ich muss jetzt aber den gesamten Pfad eingeben https://fhem.xxxxxx-hausautomation.de/fhem
Ist das richtig so, weil @werniemann hatte geschrieben auf der ersten Seite braucht er kein Passwort, wahrscheinlich dann nur bei der Weiterleitung..!?
Keine Ahnung, dass weiß ich jetzt nicht, bitte nochmal über meine config schauen. Brauch da noch etwas Unterstützung  :-\


jetzt komme ich gar nicht mehr drauf..! :-\
Es gibt jetzt unter /etc/nginx/sites-available/ die Datei fhem.xxxxxx-hausautomation


und unter /etc/nginx/sites-enabled/ den link angelegt mit
ln -s /etc/nginx/sites-available/fhem.xxxxxx-hausautomation /etc/nginx/sites-enabled/fhem.xxxxxx-hausautomation

bekomme ein "403 Forbidden" den nginx vorher gestoppt und wieder gestartet

die Datei fhem.xxxxxx-hausautomation
server {
    listen      80 default_server;
    listen      [::]:80 default_server;
    server_name default_server;

    root /usr/share/nginx/html;
    index index.html index.htm;

    access_log  /var/log/nginx/default.access.log;
    error_log   /var/log/nginx/default.error.log;

    # Sicherheit
    server_tokens off;
    add_header Strict-Transport-Security 'max-age=31536000; includeSubDomains' always;

    # Für LetsEncrypt
    location ~ /\.well-known {
        root /usr/share/nginx/html;
    }

    # Alles andere auf https://
    location / {
        try_files $uri $uri/ =404;
        return 301 https://$host$request_uri;
    }
}

server {
    listen      443 ssl http2;
    listen [::]:443 ssl http2;
    server_name fhem.xxxxxx-hausautomation.de;

    ssl_certificate_key /etc/letsencrypt/live/fhem.xxxxxx-hausautomation.de/privkey.pem;
    ssl_certificate     /etc/letsencrypt/live/fhem.xxxxxx-hausautomation.de/fullchain.pem;

    root        /usr/share/nginx/html;
    index       index.html index.htm;

    access_log  /var/log/nginx/fhem.xxxxxx-hausautomation.de.access.log;
    error_log   /var/log/nginx/fhem.xxxxxx-hausautomation.de.error.log;

    # Sicherheit
    server_tokens off;
    add_header Strict-Transport-Security 'max-age=31536000; includeSubDomains' always;

    # Normalerweise alles nur nach Login
    location / {
        auth_basic              "Restricted Content";
        auth_basic_user_file    /etc/nginx/.htpasswd;

        proxy_set_header        Host $host;
        proxy_set_header        X-Forwarded-Host $host;
        proxy_set_header        X-Forwarded-Server $host;
        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass              https://fhem.xxxxxx-hausautomation.de:443;
        client_max_body_size    128M;
    }


    # Normalerweise alles nur nach Login / Fhem direkt
    location /fhem {
        auth_basic              "Restricted Content";
        auth_basic_user_file    /etc/nginx/.htpasswd;

        proxy_set_header        Host $host;
        proxy_set_header        X-Real-IP $remote_addr;
        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header        X-Forwarded-Proto $scheme;
        proxy_http_version      1.1;

        # if ($http_upgrade = "websocket") {
        #    set $my_http_upgrade $http_upgrade;
        #    set $my_connection "upgrade";
        # }
        # proxy_set_header      Upgrade $my_http_upgrade;
        # proxy_set_header      Connection $my_connection;

        proxy_pass              http://fhemServer:8083;
        proxy_read_timeout      90;
        proxy_buffering         off;
        client_max_body_size    128M;
    }
}


EDIT://
ich habe jetzt in der Logdatei gesehen das er mir folgenden Fehler zeigt, sicher weil ich jetzt die Config geändert habe...!
Zitat2018/05/24 16:42:04 [error] 751#751: *4 open() "/etc/nginx/.htpasswd" failed (2: No such file or directory), client: 89.183.115.182, server: fhem.xxxxxx-hausautomation.de, request: "GET / HTTP/2.0", host: "fhem.xxxxxx-hausautomation.de"
Intel-NUC i5: FHEM-Server 6.1 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM

Wernieman

Ich habe bei mir ALLES mit User/Passwort eingetragen. Aud em Web (Öffentlich) soll schließlich keiner Zugreifen können.

Wenn Du dieses nicht willst, nimm es bei "location /" raus und lasse es nur bei "location /fhem" drin.

- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

moonsorrox

Habe ich jetzt nicht richtig verstanden...! :-\

Du hattest geschrieben
ZitatIch brauchte kein User/Passwort ..... jedenfalls nicht für die erste Seite ...

Ich möchte beim zugreifen mich mit User und Passwort in mein fhem einloggen, aber was ist bei dir die 1.Seite..?

So wie es bei mir jetzt ist muss ich eben den gesamten Pfad eingeben diesen mit "fhem" dahinter
https://fhem.xxxxxx-hausautomation.de/fhem
somit bin ich ja auf dem Weboberfläche wie eingetragen xxxxx.8083
Ist das bei dir auch der Fall oder muss ich da noch was verändern...? Deshalb oben die Frage der ersten Seite.

Wenn ich eingebe
https://fhem.xxxxxxx-hausautomation.de/
kommt die Fehlerseite 502 Bad Gateway


Mir geht es auch darum das ich später weitere Pfade hinzufügen kann und das ist mir eben noch nicht gelungen, gut aber das später.
Ich muss erst einmal die jetzige Konstellation verstehen... :-\

Intel-NUC i5: FHEM-Server 6.1 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM

Wernieman

Schau Dir mal folgendes an ... hast Du es angepasst?
    location / {
        auth_basic              "Restricted Content";
        auth_basic_user_file    /etc/nginx/.htpasswd;

        proxy_set_header        Host $host;
        proxy_set_header        X-Forwarded-Host $host;
        proxy_set_header        X-Forwarded-Server $host;
        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass              https://fhem.xxxxxx-hausautomation.de:443;
        client_max_body_size    128M;
    }


Mal eine Kleine Einführung:
"location /" Für den Pfad / gilt folgendes ..
"location /fhem" Für den Pfad /fhem gilt folgendes ..
Wenn Du also für / was haben willst, mußt DU entweder:
eine Website Hinterlegen (und root /.../ devinieren) oder eine Umleitung definieren, ala
return 301 https://......;
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html