Verständnisfrage

Hier können Probleme und alles andere in Deutscher Sprache gelöst werden.
Post Reply
smk
Regular
Posts: 13
Joined: Fri Nov 13, 2015 2:48 pm

Verständnisfrage

Post by smk »

Hallo,

Auf meinem Server habe ich mein Blog in einem LXC Container und zusätzlich habe ich ein LXC Container der als Reverse Proxy dient. Bei mir läuft alles über nginx.

Nginx für mein Blog läuft nicht auf Port 80 oder 443 sondern von mir ausgedachten Port. Der Rev-Proxy nimmt alle anfragen von Port 80 und 443 an und kontaktiert den entsprechenden Container. Obwohl ich bei der Installation keinen Port angegeben habe verweist mein Theme (Clean-Blog) auf meine URL mit den Port meiner nginx

Code: Select all

https://blog.knasan.de:8012
Ist nicht weiter schlimm, aber ich möchte verstehen warum mein Port ausgelesen und verarbeitet wird.

Ein kurzer blick in meiner Datenbank von S9y (s9y_config) konnte ich den Port nirgends finden. Daher verstehe ich nicht woher der Port kommt.

Code: Select all

MariaDB [s9y]> select name,value from s9y_config where name = "defaultBaseURL";
+----------------+------------------------+
| name           | value                  |
+----------------+------------------------+
| defaultBaseURL | https://blog.knasan.de |
+----------------+------------------------+
1 row in set (0.00 sec)

Code: Select all

MariaDB [s9y]> select name,value from s9y_config where name = "autodetect_baseURL";
+--------------------+-------+
| name               | value |
+--------------------+-------+
| autodetect_baseURL | true  |
+--------------------+-------+
1 row in set (0.00 sec)
Weiß jemand warum das so ist oder wo ich Hand anlegen kann? Bin für jeden Tipp dankbar.
thh
Regular
Posts: 419
Joined: Thu Oct 26, 2006 2:38 pm
Location: Stuttgart, Germany
Contact:

Re: Verständnisfrage

Post by thh »

smk wrote: Sun Jan 27, 2019 7:10 pm Obwohl ich bei der Installation keinen Port angegeben habe verweist mein Theme (Clean-Blog) auf meine URL mit den Port meiner nginx

Code: Select all

https://blog.knasan.de:8012
[...]

Code: Select all

MariaDB [s9y]> select name,value from s9y_config where name = "autodetect_baseURL";
+--------------------+-------+
| name               | value |
+--------------------+-------+
| autodetect_baseURL | true  |
+--------------------+-------+
1 row in set (0.00 sec)
Das wird es sein: s9y soll als Base-URL die Daten verwenden, unter denen das Blog aufgerufen wird, egal was konfiguriert ist (sinnvoll, wenn man ein Blog unter verschiedenen Hostnamen/Domains aufrufen will). Aufgerufen wird aber - aus Sicht des Servers, auf dem s9y läuft - "https://blog.knasan.de:8012"; das sind die Daten, die für $_SERVER['HTTP_HOST'] und $_SERVER['SERVER_PORT'] gesetzt sind.

Stell das mal aus (in der Config im Backend oder direkt in der Datenbank), und das Problem sollte verschwinden.
onli
Regular
Posts: 2825
Joined: Tue Sep 09, 2008 10:04 pm
Contact:

Re: Verständnisfrage

Post by onli »

Das könnte aus https://github.com/s9y/Serendipity/blob ... c.php#L222 kommen:

Code: Select all

        case 'defaultBaseURL':
        case 'baseURL':
            $ssl  = isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on';
            $port = $_SERVER['SERVER_PORT'];
            return sprintf('http%s://%s%s%s',
                            $ssl ? 's' : '',
                            preg_replace('@^([^:]+):?.*$@', '\1', $_SERVER['HTTP_HOST']),
                            (($ssl && $port != 443) || (!$ssl && $port != 80)) ? (':' . $port) : '',
                            rtrim(dirname($_SERVER['PHP_SELF']), '/') .'/'
                   );
Wenn der Port kein Standardport ist wird er hier wohl als Standardwert gesetzt.
smk
Regular
Posts: 13
Joined: Fri Nov 13, 2015 2:48 pm

Re: Verständnisfrage

Post by smk »

Danke für die Erklärung.
Da ich mein Blog für meine Hauptdomain und Subdomain verwenden möchte, habe ich diese Funktion aktiviert.

Zu Testzwecken habe ich den Wert von "autodetect_baseURL" auf "false" gesetzt. Danach ging mein Blog gar nicht mehr. Weder mit der Haupt noch Subdomain.
Post Reply