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;
}
}