Nginx & PlexConnect

I’ve been running PlexConnect for a while and just fine but I wanted to move it behind Nginx but no matter what settings I change I continue to run into “iMovie Theater is unavailable. Try again later.” I thought it may of been related to the certficates but this wasn’t the case.

I can change PlexConnect webserver ports from 8090/8091 to 80 and 443 stopping nginx and its back working. Though for some reason I just cannot figure out why it isn’t working with Nginx proxy_pass…

I don’t have any sort of errors in the nginx logs so I can’t figure it out. I’ve swapped many of the settings around playing with it but still unsuccessful. PlexConnect log is showing an intercept request but nothing after. :frowning:

My PlexConnect settings…

[PlexConnect] enable_plexgdm = False ip_pms = 127.0.0.1 port_pms = 32400 enable_dnsserver = True port_dnsserver = 53 ip_dnsmaster = 10.0.1.1 prevent_atv_update = True enable_plexconnect_autodetect = True ip_plexconnect = 0.0.0.0 hosttointercept = www.icloud.com port_webserver = 8090 enable_webserver_ssl = True port_ssl = 8091 certfile = ./assets/certificates/icloud.pem allow_gzip_atv = True allow_gzip_pmslocal = False allow_gzip_pmsremote = True loglevel = Normal logpath = .

PlexConnect log…

root@Shuttle:/opt/PlexConnect# python /opt/PlexConnect/PlexConnect.py 18:06:31 PlexConnect: *** 18:06:31 PlexConnect: PlexConnect 18:06:31 PlexConnect: Press CTRL-C to shut down. 18:06:31 PlexConnect: *** 18:06:31 PlexConnect: started: 18:06:31 18:06:31 PlexConnect: Version: 0.5-dev-101215 18:06:31 PlexConnect: Python: 2.7.6 (default, Jun 22 2015, 17:58:13) [GCC 4.8.2] 18:06:31 PlexConnect: Host OS: linux2 18:06:31 PlexConnect: PILBackgrounds: Is PIL installed? True 18:06:31 PlexConnect: IP_self: 10.0.1.3 18:06:31 DNSServer: started: 18:06:31 18:06:31 DNSServer: *** 18:06:31 DNSServer: DNSServer: Serving DNS on 10.0.1.3 port 53. 18:06:31 DNSServer: intercept: ['www.icloud.com'] => 10.0.1.3 18:06:31 DNSServer: restrain: ['mesu.apple.com', 'appldnld.apple.com', 'appldnld.apple.com.edgesuite.net'] => 127.0.0.1 18:06:31 DNSServer: forward other to higher level DNS: 10.0.1.1 18:06:31 DNSServer: *** 18:06:32 WebServer: started: 18:06:32 18:06:32 WebServer: *** 18:06:32 WebServer: WebServer: Serving HTTP on 10.0.1.3 port 8090. 18:06:32 WebServer: *** 18:06:32 WebServer: started: 18:06:32 18:06:32 WebServer: *** 18:06:32 WebServer: WebServer: Serving HTTPS on 10.0.1.3 port 8091. 18:06:32 WebServer: *** 18:06:38 DNSServer: DNS request received! 18:06:38 DNSServer: Source: ('10.0.1.5', 50461) 18:06:38 DNSServer: Domain: p8-buy.itunes-apple.com.akadns.net 18:06:38 DNSServer: ***forward request 18:06:38 DNSServer: -> DNS response from higher level 18:06:57 DNSServer: DNS request received! 18:06:57 DNSServer: Source: ('10.0.1.5', 59279) 18:06:57 DNSServer: Domain: itunes.apple.com 18:06:57 DNSServer: ***forward request 18:06:57 DNSServer: -> DNS response from higher level 18:06:58 DNSServer: DNS request received! 18:06:58 DNSServer: Source: ('10.0.1.5', 54121) 18:06:58 DNSServer: Domain: pd-st.itunes.apple.com 18:06:58 DNSServer: ***forward request 18:06:58 DNSServer: -> DNS response from higher level 18:06:59 DNSServer: DNS request received! 18:06:59 DNSServer: Source: ('10.0.1.5', 64797) 18:06:59 DNSServer: Domain: se.itunes.apple.com 18:06:59 DNSServer: ***forward request 18:06:59 DNSServer: -> DNS response from higher level 18:06:59 DNSServer: DNS request received! 18:06:59 DNSServer: Source: ('10.0.1.5', 53296) 18:06:59 DNSServer: Domain: a1.mzstatic.itunes-apple.com.akadns.net 18:06:59 DNSServer: ***forward request 18:06:59 DNSServer: -> DNS response from higher level 18:06:59 DNSServer: DNS request received! 18:06:59 DNSServer: Source: ('10.0.1.5', 56395) 18:06:59 DNSServer: Domain: a5.mzstatic.com 18:06:59 DNSServer: ***forward request 18:07:00 DNSServer: -> DNS response from higher level 18:07:00 DNSServer: DNS request received! 18:07:00 DNSServer: Source: ('10.0.1.5', 65227) 18:07:00 DNSServer: Domain: a2.mzstatic.itunes-apple.com.akadns.net 18:07:00 DNSServer: ***forward request 18:07:00 DNSServer: -> DNS response from higher level 18:07:04 DNSServer: DNS request received! 18:07:04 DNSServer: Source: ('10.0.1.5', 55979) 18:07:04 DNSServer: Domain: www.icloud.com 18:07:04 DNSServer: ***intercept request 18:07:04 DNSServer: -> DNS response: 10.0.1.3 ^C18:07:13 PlexConnect: Shutting down. 18:07:14 WebServer: Shutting down (HTTP). 18:07:14 WebServer: Shutting down (HTTPS). 18:07:14 DNSServer: Shutting down. 18:07:14 PlexConnect: shutdown

Nginx settings…

server {
listen [::]:80;

server_name www.icloud.com;

location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

proxy_pass http://127.0.0.1:8090;

}
}

server {
listen [::]:443;

server_name www.icloud.com;

ssl_certificate /opt/PlexConnect/assets/certificates/icloud.pem;
ssl_certificate_key /opt/PlexConnect/assets/certificates/icloud.key;

ssl on;

location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

proxy_pass https://127.0.0.1:8091;

}
}