Adding Reverse Proxy for Plex to Apache vhost
Introduction
It is easy to find apache vhost definitions for reverse proxying plex traffic. What this post does is show you how to include the parts needed, to provide a reverse proxy to plex, in an existing vhost. Why would you need this? I don't know. I did, and it was as easy as adding a few bits to represent the web address.
Adding reverse proxy for plex to Apache vhost
So in your vhost, add these lines:
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyRequests Off
ProxyPass /web/ http://www.ipa.example.com:32400/web/
ProxyPassReverse /web/ http://www.ipa.example.com:32400/web/
<LocationMatch '^/web\/.*$'>
RequestHeader set Front-End-Https "On"
RewriteEngine On
RewriteCond %{REQUEST_URI} !^/web
RewriteCond %{HTTP:X-Plex-Device} ^$
RewriteCond %{REQUEST_METHOD} !^(OPTIONS)$
RewriteRule ^/$ /web/$1 [R,L]
</LocationMatch>
So the difference in this snippet from a separate vhost definition is that you proxypass only the /web/ location over to your Plex media server.
<VirtualHost 192.168.1.14:180>
ServerName example.no-ip.biz:80
ServerAlias example.no-ip.biz example www www.ipa.example.com
ServerAdmin bgstack15@gmail.com
DocumentRoot /var/www
Options +Indexes
IndexOptions IgnoreCase FancyIndexing FoldersFirst NameWidth=* DescriptionWidth=*
IndexIgnore FOOTER.html repodata favicon.ico favicon.png
ReadmeName FOOTER.html
DirectoryIndex index.php index.html index.htm
ServerSignature Off
SetEnvIf Request_URI "ignoredfile.html" dontlog
LogFormat "%V %h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combinedvhost
CustomLog logs/access_log combinedvhost env=!dontlog
# Useful additions for a mirror server
AddIcon /icons/rpm.png .rpm
AddIcon /icons/deb.png .deb
AddIcon /icons/repo.png .repo
AddType application/octet-stream .iso
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
TraceEnable off
<FilesMatch "\.acl$">
Deny from All
</FilesMatch>
<Directory "/var/www/example">
AllowOverride None
Order allow,deny
Allow from all
Options Indexes FollowSymLinks
</Directory>
# Allows "centos.example.no-ip.biz" redirection to "example.no-ip.biz/centos" behavior
# RewriteEngine On
# RewriteCond %{HTTP_HOST} ^([^.]*)\.example\.no-ip\.biz$
# RewriteRule /(.*) http://example.no-ip.biz/%1/$1 [R,L]
# reference: welcome.conf, reverseproxyforplex.conf
# reference: http://matt.coneybeare.me/how-to-map-plex-media-server-to-your-home-domain/
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyRequests Off
ProxyPass /web/ http://www.ipa.example.com:32400/web/
ProxyPassReverse /web/ http://www.ipa.example.com:32400/web/
<LocationMatch '^/web\/.*$'>
RequestHeader set Front-End-Https "On"
RewriteEngine On
RewriteCond %{REQUEST_URI} !^/web
RewriteCond %{HTTP:X-Plex-Device} ^$
RewriteCond %{REQUEST_METHOD} !^(OPTIONS)$
RewriteRule ^/$ /web/$1 [R,L]
</LocationMatch>
</VirtualHost>
Comments