-
-
Save aameralduais/867eca00db1c046285a8e11c0634620f 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; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment