summarylogtreecommitdiffstats
path: root/nginx-example.conf
blob: ced954925819dfe4ef8256dc22c9b2c82247081c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
server {
   listen   80;
   server_name FQDN;
   charset utf-8;

   root PATH;
   index index.php;

   # Rewrite rule for Subsonic backend
   if ( !-d $request_filename ) {
      rewrite ^/rest/(.*).view$ /rest/index.php?action=$1 last;
      rewrite ^/rest/fake/(.+)$ /play/$1 last;
   }

   # Rewrite rule for Plex backend
   if ( !-d $request_filename ) {
      rewrite ^/plex/(.*)$ /plex/index.php?action=$1 last;
   }

   # Rewrite rule for Channels
   if (!-d $request_filename){
      rewrite ^/channel/([0-9]+)/(.*)$ /channel/index.php?channel=$1&target=$2 last;
   }

   # Beautiful URL Rewriting
   rewrite ^/play/ssid/(\w+)/type/(\w+)/oid/([0-9]+)/uid/([0-9]+)/name/(.*)$ /play/index.php?ssid=$1&type=$2&oid=$3&uid=$4&name=$5 last;
   rewrite ^/play/ssid/(\w+)/type/(\w+)/oid/([0-9]+)/uid/([0-9]+)/client/(.*)/noscrobble/([0-1])/name/(.*)$ /play/index.php?ssid=$1&type=$2&oid=$3&uid=$4&client=$5&noscrobble=$6&name=$7 last;
   location /play {
      if (!-e $request_filename) {
         rewrite ^/play/art/([^/]+)/([^/]+)/([0-9]+)/thumb([0-9]*)\.([a-z]+)$ /image.php?object_type=$2&object_id=$3&auth=$1;
         break;
      }

      rewrite ^/([^/]+)/([^/]+)(/.*)?$ /play/$3?$1=$2;
      rewrite ^/(/[^/]+|[^/]+/|/?)$ /play/index.php last;
      break;
   }

   location /rest {
      limit_except GET POST {
         deny all;
      }
   }

   location /plex {
      limit_except GET POST {
         deny all;
      }
   }

   location ^~ /bin/ {
      deny all;
      return 403;
   }

   location ^~ /config/ {
      deny all;
      return 403;
   }

   location / {
      limit_except GET POST HEAD{
         deny all;
      }
   }

   location ~ ^/.*.php {
    # PHP config...
   }

   # Rewrite rule for WebSocket
   location /ws {
    rewrite ^/ws/(.*) /$1 break;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    proxy_set_header Host $host;
    proxy_pass http://127.0.0.1:8100/;
   }
}