Eduard Prezer Logo
DJ Fotografie Über mich Links Blog Gästebuch Impressum

nginx Reverse-Proxy für Plex Media Server

Möchte man seinen lokalen Plex Media Server auch von außen zugreifbar machen, geht dies am besten über einen Reverse-Proxy. 
Der folgende Teil meiner nginx Konfiguration, sorgt für reibungslosen betrieb auf meinem Odroid XU4. Man beachte dass hier der Rumpf mit den Listenern auf Port 80/443 fehlt. Sowie die Umleitung von Port 80 auf 443.

#Die folgende Regex Regel setzt eine Alias für die Datei plex.js. 
#Dies ist nötig, um Plex Transcoding auf ARM-basierter Hardware 
#zu aktivieren. (Die referenzierte plex.js muss ebenfalls modifiziert werden)
location ~ ^/web/js/plex.js(.*)$
{
  alias /usr/lib/plexmediaserver/Resources/Plug-ins/WebClient.bundle/Contents/Resources/js/plex.js;
}

location / {
#Die folgenden Regeln sorgen dafür, dass ihr automatisch auf /web/index.html umgeleitet werdet
#Umleiten, wenn kein OPTIONS request
  if ($request_method != OPTIONS ) {
    set $test A;
  }
  if ($http_x_plex_device_name = '') {
    set $test "${test}B";
  }
  if ($arg_X-Plex-Device-Name = '') {
    set $test "${test}C";
  }
  if ($test = ABC) {
    rewrite ^/$ https://$http_host/web/index.html;
  }

#Folgende Adresse:Port, ist die Adresse eures lokalen PlexMediaServers
  proxy_pass http://127.0.0.1:32400;
  proxy_set_header    Host            $http_host;
  proxy_set_header X-Real-IP $remote_addr;
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  
  proxy_redirect      off;
  proxy_buffering     off;
  
  proxy_http_version      1.1;
  proxy_set_header        Upgrade         $http_upgrade;
  proxy_set_header        Connection      "upgrade";
  proxy_read_timeout      36000s;         # Timeout nach 10 Stunden

#Setzt eine HTTP Authentifizierung
  auth_basic "Bitte Anmelden";
  auth_basic_user_file /etc/nginx/htpasswd;
}

Die hier gezeigte Konfiguration verwendet auth_basic zur einfachen HTTP Authentifizierung. Dies ist nur empfehlenswert, wenn man über SSL(443) auf Plex zugreift. Das auth_basic_user_file kann dabei mithilfe einer der folgenden Befehle generiert werden. Weitere Informationen zu Auth Basic

htpasswd -nbd myName myPassword

openssl passwd -crypt myPassword