In this I assumed that passenger’s nginx is running on another server/instances/port. It’s a waste of memory, but my current setup forced me to do this.
upstream passenger { server 10.0.0.9:8000; } server { listen 80; server_name mycoaldanbooruserver.lol; root /var/www/rails/danbooru/public; client_max_body_size 30m; location /(data|javascripts|stylesheets) { expires max; break; } location /maintenance.html { expires 10; } location / { try_files /maintenance.html $uri @genboard; } location @genboard { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_redirect off; proxy_pass http://passenger; } error_page 404 /404.html; error_page 500 502 503 504 /500.html; }
Basically it simplifies the setting using 0.7’s try_files and regex-in-location method. Also usable if you happen to use mongrel(_cluster).