Ultimate nginx config for Phusion Passenger

Main nginx.conf:

worker_processes  1;
events {
    worker_connections  1024;
}

http {
  include       mime.types;
  default_type  application/octet-stream;

  sendfile        on;
  keepalive_timeout  65;

  gzip  on;
  gzip_http_version 1.0;
  gzip_comp_level 2;
  gzip_buffers 16 8k;
  gzip_proxied any;
  gzip_min_length 360;
  gzip_types      text/plain text/html text/css application/x-javascript text/xml application/xml application/xml+rss text/javascript;
  proxy_set_header    Accept-Encoding  “”;

  passenger_root /usr/local/lib/ruby/gems/1.8/gems/passenger-2.2.10;
  passenger_ruby /usr/local/bin/ruby;

  include /path/to/your/app/config/nginx.conf;
  client_max_body_size 10M;
  client_body_buffer_size 128k;
}

Your application’s nginx.conf:

server {
  listen 80;
  server_name website.com;
  rewrite ^/(.*) https://www.website.com/$1 permanent;
}

server {
  listen 443;
  server_name www.website.com;

  root   /path/to/your/public/folder;
  passenger_enabled on;

  access_log  /path/to/your/log/folder/nginx_access.log;
  error_log  /path/to/your/log/folder/nginx_error.log;

  ssl         on;
  ssl_certificate      /etc/ssl/certs/your-website.crt;
  ssl_certificate_key  /etc/ssl/private/your-website.key;

  location ~* ^.+.(jpg|jpeg|gif|css|png|js|ico)$ {
    root  /path/to/your/public/folder;
    expires max;
    break;
  }
}