Reverse Proxy für Webinterface

Ihr habt Probleme mit eurem Spiel, eine Frage zu technischen Dingen, oder wollt einen Bug melden? In diesem Forum finden all diese Dinge ihren Platz. Bitte beachtet die Postingregeln für Bug-Reports.
RjhJnY6mqBdSkBu95aeq
Posts: 2
Joined: Sat Mar 09, 2024 2:38 pm

Reverse Proxy für Webinterface

Post by RjhJnY6mqBdSkBu95aeq »

Hallo zusammen,

ich habe vor wenigen Tagen einen FS22 Server für ein paar Freunde und mich auf einer Windows-VM aufgesetzt, jedoch bekomme ich es leider nicht hin, eine funktionierende Config für HAProxy oder Nginx zu erstellen.
Ich habe ca. 20 andere Services über die gleiche IP laufen, wenn ich den normalen HTTPS-Port nehmen möchte, muss ich das leider bei mir in HAProxy einbinden.
Aktuell reiche ich Port 8443 auf den Server durch und habe ein Let's Encrypt Zertifikat eingebunden, jedoch ist das eher eine unschöne Lösung, wenn ich den Zugang für andere Leute zugänglich machen will. Zudem kann ich nicht einfach das Zertifikat austauschen, sonder muss vermutlich den Game-Server dafür neustarten (anstatt des LBs/Reverse Proxys)
Meine aktuelle HAProxy-Config erkennt das Web-Interface-Backend als online, jedoch scheint vom Web-Server der Session-Cookie jedes Mal neu gesetzt zu werden, wenn er nicht direkt aufgerufen wird.
Der Login ist zwar erfolgreich, jedoch erhalte ich direkt eine neue Session und die Login-Seite.
Ein manuelles Aufrufen der anderen Seiten (z.B. savegames.html) produziert leider auch eine neu SessionID.

Die Frontend-Config macht nur Backend-Auswahl über die Hostnames.
Aktuell als online erkannte Backend-Config:

Code: Select all

backend be-farming_simulator
  option httpchk GET /
  option forwardfor
  server 1 10.10.30.11:8443 check ssl verify none
Eine weitere Sache, die mich gewundert hat, sofern der Aufruf über den LB geht, funktioniert der Redirect scheinbar auch nicht korrekt und sendet ihn ohne Hostnamen, sodass nur https:///index.html zurückgegeben wird.
Ein setzen des Host-Headers durch den LB hatte leider keinen Erfolg:

Code: Select all

deployment@ansible:~$ curl -XGET -IL https://ls.domain.com:8443
HTTP/1.1 301 Moved Permanently
Content-type: text/html
Date: Sat, 09 Mar 2024 18:03:07 GMT
Last-modified: Sat, 09 Mar 2024 18:03:07 GMT
Location: https://ls.domain.com:8443/index.html
Server: GIANTS Dedicated Server GIANTS Dedicated Server/9.2.0.0
Content-Length: 64

HTTP/1.1 200 OK
Content-type: text/html
Date: Sat, 09 Mar 2024 18:03:07 GMT
Expires: 0
Last-modified: Sat, 09 Mar 2024 18:03:07 GMT
Server: GIANTS Dedicated Server GIANTS Dedicated Server/9.2.0.0
Set-Cookie: SessionID=269251710002741; path=/
Content-Length: 8841

deployment@ansible:~$ curl -XGET -IL https://ls.domain.com
HTTP/1.1 301 Moved Permanently
content-type: text/html
date: Sat, 09 Mar 2024 18:03:27 GMT
last-modified: Sat, 09 Mar 2024 18:03:27 GMT
location: https:///index.html
server: GIANTS Dedicated Server GIANTS Dedicated Server/9.2.0.0
content-length: 64
Was muss ich anpassen um das Web-Interface normal über einen LB/reverse Proxy aufrufen zu können?