upstream app_server { server localhost:<%= upstream_port %> fail_timeout=0; } server { listen <%= port %> default deferred; # for Linux client_max_body_size 4G; server_name <%= server_name %>; keepalive_timeout 5; # path for static files root <%= web_root %>; # Prefer to serve static files directly from nginx to avoid unnecessary # data copies from the application server. try_files $uri/index.html $uri.html $uri @app; location @app { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # enable this if you forward HTTPS traffic to unicorn, # this helps Rack set the proper URL scheme for doing redirects: proxy_set_header X-Forwarded-Proto $scheme; # pass the Host: header from the client right along so redirects # can be set properly within the Rack application proxy_set_header Host $http_host; # we don't want nginx trying to do something clever with # redirects, we set the Host: header above already. proxy_redirect off; proxy_pass http://app_server; } # Rails error pages error_page 500 502 503 504 /500.html; location = /500.html { root <%= web_root %>; } } <% if ssl -%> server { listen <%= ssl_port %>; client_max_body_size 4G; server_name <%= server_name %>; keepalive_timeout 5; # path for static files root <%= web_root %>; ssl on; ssl_certificate <%= ssl_cert_path %>; ssl_certificate_key <%= ssl_key_path %>; # Prefer to serve static files directly from nginx to avoid unnecessary # data copies from the application server. try_files $uri/index.html $uri.html $uri @app; location @app { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # enable this if you forward HTTPS traffic to unicorn, # this helps Rack set the proper URL scheme for doing redirects: proxy_set_header X-Forwarded-Proto $scheme; # pass the Host: header from the client right along so redirects # can be set properly within the Rack application proxy_set_header Host $http_host; # we don't want nginx trying to do something clever with # redirects, we set the Host: header above already. proxy_redirect off; proxy_pass http://app_server; } # Rails error pages error_page 500 502 503 504 /500.html; location = /500.html { root <%= web_root %>; } } <% end -%>