Docker SWAG upstream zu externen Server herstellen

Cavekeeper

Benutzer
Mitglied seit
08. Okt 2008
Beiträge
136
Punkte für Reaktionen
6
Punkte
18
Moin Moin,

ich möchte mit swag einen Reverse Proxy zu einem Server außerhalb des Docker Netzwerkes herstellen.
Mit der Adresse homeassistant.domain.com möchte ich HomeAssistant auf einem RPI erreichen.
Leider funktioniert das so noch nicht. Ich komme offensichtlich aus dem SWAG Docker Netzwerk nicht raus (400: Bad Request).
Der SWAG Container gehört zwei Docker Netzwerken an.
- macvlan_bridge -- hier habe ich als Gateway die Adresse des Routers eigegeben, somit kann ich port 80/443 direkt auf den SWAG Container switchen.
- swag_bridge -- hierüber kommunizieren die anderen Container mit SWAG
Der RPI nutzt das gleiche Gateway des Routers. Also sollte SWAG über die macvlan_bridge auch den RPI mit HomeAssistant erreichen. Ist aber leider nicht so.
Die Firewall der DS ist ausgeschaltet.
Als subdomain.conf habe ich den vorhandenen Sample modifiziert.
Code:
## Version 2023/05/31
# make sure that your homeassistant container is named homeassistant
# make sure that your dns has a cname set for homeassistant

# As of homeassistant 2021.7.0, it is now required to define the network range your proxy resides in, this is done in Homeassitants configuration.yaml
# https://www.home-assistant.io/integrations/http/#trusted_proxies
# Example below uses the default dockernetwork ranges, you may need to update this if you dont use defaults.
#
# http:
#   use_x_forwarded_for: true
#   trusted_proxies:
#     - 172.27.0.0/16

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

    server_name homeassistant.*;

    include /config/nginx/ssl.conf;

    client_max_body_size 0;

    # enable for ldap auth (requires ldap-location.conf in the location block)
    #include /config/nginx/ldap-server.conf;

    # enable for Authelia (requires authelia-location.conf in the location block)
    #include /config/nginx/authelia-server.conf;

    # enable for Authentik (requires authentik-location.conf in the location block)
    #include /config/nginx/authentik-server.conf;

    location / {
        # enable the next two lines for http auth
        #auth_basic "Restricted";
        #auth_basic_user_file /config/nginx/.htpasswd;

        # enable for ldap auth (requires ldap-server.conf in the server block)
        #include /config/nginx/ldap-location.conf;

        # enable for Authelia (requires authelia-server.conf in the server block)
        #include /config/nginx/authelia-location.conf;

        # enable for Authentik (requires authentik-server.conf in the server block)
        #include /config/nginx/authentik-location.conf;

        include /config/nginx/proxy.conf;
        include /config/nginx/resolver.conf;
        set $upstream_app 192.168.178.5;
        set $upstream_port 8123;
        set $upstream_proto http;
        proxy_pass $upstream_proto://$upstream_app:$upstream_port;

    }

    location ~ ^/(api|local|media)/ {
        include /config/nginx/proxy.conf;
        include /config/nginx/resolver.conf;
        set $upstream_app 192.168.178.5;
        set $upstream_port 8123;
        set $upstream_proto http;
        proxy_pass $upstream_proto://$upstream_app:$upstream_port;
    }
}
Die internen upstreams, also alle verweise auf Container innerhalb des Netzwerkes swag_bridge, funktionieren einwandfrei.
Eigentlich sollte ich doch über die macvlan_bridge ins Router Netzwerk gelangen?
Wie macht ihr das?

VG
Thomas
 

plang.pl

Benutzer
Contributor
Sehr erfahren
Mitglied seit
28. Okt 2020
Beiträge
15.028
Punkte für Reaktionen
5.401
Punkte
564
Ich lasse die Spielereien mit MACVLAN lieber immer sein. Packe den RP ins Host-Netz und fertig.
 

alexhell

Benutzer
Sehr erfahren
Mitglied seit
13. Mai 2021
Beiträge
2.831
Punkte für Reaktionen
854
Punkte
154
Ich nutze das auch ohne MACVLAN und kann ohne Probleme alle Hosts erreichen. Ich finde MACVLAN macht mehr Probleme als es Vorteile bringt.
 

Cavekeeper

Benutzer
Mitglied seit
08. Okt 2008
Beiträge
136
Punkte für Reaktionen
6
Punkte
18
Ok, habe ich gerade mal versucht mit
network_mode: "host"
Nun meckert der swag nginx
Hmm, der host mode kollidiert mit dem Web-Server der Syno. Die läuft ja auch auf 80/443.
Das sind nicht weniger Probleme als mit MACVLAN.
Muss ich den Web-Server der Syno abschalten?
2023/12/09 15:51:36stderrnginx: [emerg] bind() to [::]:443 failed (98: Address in use)
2023/12/09 15:51:36stderrnginx: [emerg] bind() to 0.0.0.0:443 failed (98: Address in use)
2023/12/09 15:51:36stderrnginx: [emerg] bind() to [::]:80 failed (98: Address in use)
2023/12/09 15:51:36stderrnginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address in use)
 

plang.pl

Benutzer
Contributor
Sehr erfahren
Mitglied seit
28. Okt 2020
Beiträge
15.028
Punkte für Reaktionen
5.401
Punkte
564


 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat