Title: Out-of-webroot app serving
Author: AnrDaemon
 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
server {
    listen 80;
    server_name myapp.example.org;

    access_log /home/example/logs/access.log combined;
    error_log /home/example/logs/error.log warn;

    charset UTF-8;

    add_header "X-UA-Compatible" "IE=edge" always;

    root /home/example/htdocs;

    # Serve statics directly
    location = /robots.txt {
        #return 200 "/robots.txt";
        try_files $uri =404;
    }
    location /apple-touch- {
        #return 200 "/apple-touch-everything";
        try_files $uri =404;
    }
    location /assets/ {
        #return 200 "js/css/stuff";
        try_files $uri =404;
    }

    # Pass the rest to the app entry script.
    location / {
        #return 200 "@app root.";

        include fastcgi_params;

        fastcgi_param SCRIPT_FILENAME "/home/example/app/init.cgi";

        fastcgi_pass /run/cgi-interpreter-user.sock;
    }

    #error_page 404  /404.html;

    # redirect server error pages to the static page /50x.html
    #
    error_page 500 502 503 504  /50x.html;
    location = /50x.html {
        root /usr/share/nginx/html;
    }

    # deny access to .ht* files
    location ~ /\.ht {
        deny all;
    }
}
Syntax highlighting courtesy of nginx pastebin.