Last active
August 9, 2024 13:42
-
-
Save spikegrobstein/4384954 to your computer and use it in GitHub Desktop.
nginx config for proxying requests for plex over a hostname-based virtualhost.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
upstream plex-upstream { | |
# change plex-server.example.com:32400 to the hostname:port of your plex server. | |
# this can be "localhost:32400", for instance, if Plex is running on the same server as nginx. | |
server plex-server.example.com:32400; | |
} | |
server { | |
listen 80; | |
# server names for this server. | |
# any requests that come in that match any these names will use the proxy. | |
server_name | |
tv | |
plex | |
tv.example.com | |
plex.example.com; | |
# this is where everything cool happens (you probably don't need to change anything here): | |
location / { | |
# if a request to / comes in, 301 redirect to the main plex page. | |
# but only if it doesn't contain the X-Plex-Device-Name header | |
# this fixes a bug where you get permission issues when accessing the web dashboard | |
if ($http_x_plex_device_name = '') { | |
rewrite ^/$ http://$http_host/web/index.html; | |
} | |
# set some headers and proxy stuff. | |
proxy_set_header X-Real-IP $remote_addr; | |
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; | |
proxy_redirect off; | |
# include Host header | |
proxy_set_header Host $http_host; | |
# proxy request to plex server | |
proxy_pass http://plex-upstream; | |
} | |
} |
Did you ever get it working @andrewm659 ?
Update: The original gist without the proxy_set_header
s as mentioned in follow-ups works well.
Thanks @spikegrobstein.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
thanks