• This forum has a zero tolerance policy regarding spam. If you register here to publish advertising, your user account will be deleted without further questions.

Nginx & Apache

SilferSurver

New Member
Hallo in die Runde,

ich würde bitte einmal Euer Schwarmwissen benötigen. Ich möchte folgende Ngnix Konfigurationsdatei (ReverseProxy) in meinen Apache Server übernehmen.
Ich bekomme es leider nicht hin. Könnte mir da jemand bitte helfen oder einen Tip geben?

Vielen Dank schonmal! Gruss

server {
server_name example.org

# Matrix client
root /var/www/matrix.example.org;
index index.html index.htm;
# Matrix API
location ~ ^/(\_matrix|\_synapse)/ {
proxy_pass http://127.0.0.1:8008;
proxy_set_header X-Forwarded-For $remote_addr;
}
location /.well-known/matrix/server {
return 200 '{"m.server": "example.org:443"}';
add_header Content-Type application/json;
}
location /.well-known/matrix/client {
return 200 '{"m.homeserver": {"base_url": "https://example.org"},"m.identity_server": {"base_url": "https://vector.im"}}';
add_header Content-Type application/json;
add_header "Access-Control-Allow-Origin" *;
}
}
 
bisher nicht viel :

<VirtualHost *:80>
ServerName beispiel.de
ServerAlias www.beispiel.de

# auto redirect HTTP to HTTPS
Redirect permanent / https://beispiel.de/
</VirtualHost>

<VirtualHost *:443>
ServerName beispiel.de
ServerAlias www.beispiel.de

DocumentRoot /var/www/html/element/

# log files
ErrorLog /var/log/apache2/beispiel.de-error.log
CustomLog /var/log/apache2/beispiel.de-access.log combined
ProxyPass "/_matrix" "http://127.0.0.1:8008"
ProxyPass "/_synapse" "http://127.0.0.1:8008"


SSLEngine On
SSLCertificateFile /etc/letsencrypt/live/beispiel.de/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/beispiel.de/privkey.pem
</VirtualHost>
 
Und was genau funktioniert nicht? Exakte Fehlermeldung / Logauszug bitte.
Was genau fehlt Dir noch? Was genau hast Du wie genau bisher selbst versucht?
Welchen Teil der offiziellen Apache-Dokumentation hast Du nicht verstanden?

Wir sind nicht hier um CopyPaste-fähige Fertiglösungen auf dem Silbertablett zu liefern, etwas Eigeninitiative muss schon ohne Lupe ersichtlich sein...
 
Klar hast Recht. Paar wenig Infos .... Ich wollte auch keine CopyPaste Lösung. Ich möchte es ja verstehen. Glaub mir ich sitze da schon ein paar Stunden dran. Im Grund geht es hier um Matrix mit oidc an nextcloud zu binden. Hab dafür diese Anleitung gefunden:


Leider bassiert die Anleitung auf Nginx. Hab das mit dem Proxy denke auch soweit jetzt hinbekommen. Meine Host Datei nun:
<VirtualHost *:80>
ServerName beispiel.de
ServerAlias www.beispiel.de

# auto redirect HTTP to HTTPS
Redirect permanent / https://beispiel.de/
</VirtualHost>

<VirtualHost *:443>
ServerName beispiel.de
ServerAlias www.beispiel.de

# Das Verzeichniss für die Webseite,
# welche weiter auf der Domain laufen kann
DocumentRoot "/var/www/html/element/"
<Directory "/var/www/html/element/">
Options FollowSymLinks MultiViews
AllowOverride FileInfo AuthConfig
Order allow,deny
allow from all
</Directory>
# log files
ErrorLog /var/log/apache2/beispiel.de-error.log
CustomLog /var/log/apache2/beispiel.de-access.log combined

# Proxy Aktivieren
ProxyPreserveHost on

# Der lokale Proxy auf den Matrix Server
ProxyPass /_matrix http://#.#.#.#:8008/_matrix nocanon
ProxyPassReverse /_matrix http://#.#.#.#:8008/_matrix
ProxyPass /_synapse/client http://#.#.#.#:8008/_synapse/client nocanon
ProxyPassReverse /_synapse/client http://#.#.#.#:8008/_synapse/client

# Spezielle Konfiguration für Matrix:

# Erlaubt die Verwendung von URLs, welche kodierte Pfadtrennzeichen
# (%2F für / und auf entsprechenden Systemen zusätzlich %5C für \) enthalten
AllowEncodedSlashes NoDecode

# Fügt zum http-Header X-Forwarded-Proto hinzu
RequestHeader set "X-Forwarded-Proto" expr=%{REQUEST_SCHEME}

SSLEngine On
SSLCertificateFile /etc/letsencrypt/live/beispiel.de/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/beispiel.de/privkey.pem
</VirtualHost>

Der Proxy scheint auch zu funktionieren. Auszug aus dem Log des Apachen:

[Thu Dec 23 19:23:02.478247 2021] [proxy_http:error] [pid 22662] (20014)Internal error (specific information not available): [client ******:4016] AH01102: error reading status line from remote server ******:8008
[Thu Dec 23 19:23:02.478314 2021] [proxy:error] [pid 22662] [client *****:4016] AH00898: Error reading from remote server returned by /_matrix/client/r0/login/sso/redirect/oidc

Der Auszug aus dem Matrix Log:

Requested URI https://******.de:8008/_matrix/client/r0/login/sso/redirect/oidc?redirectUrl=https%3A%2F%2F*****.de%2F%23%2F is not canonical: redirecting to https://******.de/_matrix/client/r0/login/sso/redirect/oidc?redirectUrl=https%3A%2F%2F******.de%2F%23%2F

So hier häng ich nun seit ein paar Stunden und komme nicht weiter.

Vielen Dank und Gruss
 
# Der lokale Proxy auf den Matrix Server
ProxyPass /_matrix http://#.#.#.#:8008/_matrix nocanon
ProxyPassReverse /_matrix http://#.#.#.#:8008/_matrix
ProxyPass /_synapse/client http://#.#.#.#:8008/_synapse/client nocanon
ProxyPassReverse /_synapse/client http://#.#.#.#:8008/_synapse/client
Ich hoffe sehr daß #.#.#.# ein ein Alias für 127.0.0.1 ist. Das ganze Konstrukt macht nämlich nur Sinn, wenn der Server auf Port 8008 eben nicht weltweit erreichbar ist, sondern nur auf dem Server selbst und der Reverse Proxy zusätzliche Schutzfunktionen übernimmt.

Falls ***** etwas anderes als 127.0.0.1 ist, wäre damit auch diese Fehlermeldung erklärbar:
[Thu Dec 23 19:23:02.478314 2021] [proxy:error] [pid 22662] [client *****:4016] AH00898: Error reading from remote server returned by /_matrix/client/r0/login/sso/redirect/oidc
Im Nginx-Snippet sind übrigens noch zwei spezielle URLs "/.well-known/matrix/server" und "client" angegeben. Weil ich nicht weiß, inwieweit sie für einen erfolgreichen Verbundungsaufbau gebraucht werdem würde ich sie zum Test einfach durch Dateien im Filesystem abbilden:
Code:
{"m.server": "example.org:443"}
 
Ich interpretiere die Matrix-Log, dass er sich an Port 8008 stört und https auf Default-Port erwartet.
Dein Nginx Reverse-Proxy gibt standardmässig den neuen (echten) HTTP-Server als Host an, dies kann man aber umändern.
Wenn ich mich nicht täusche, sollte "proxy_set_header Host $host" zumindest diese Meldung korrigieren
 
hab den Server komplett neu aufgesetzt. Die Host Dateien und den Proxy angepasst jetzt funktioniert es.
Nextcloud fungiert jetzt OICD Server für Matrix.

Vielen Dank für Eure Hilfe.
 
Back
Top