Skip to content

Instantly share code, notes, and snippets.

@ezodude
Created October 15, 2010 05:49
Show Gist options
  • Save ezodude/627703 to your computer and use it in GitHub Desktop.
Save ezodude/627703 to your computer and use it in GitHub Desktop.
Nginx optimised config with Passenger
pid /opt/nginx/logs/nginx.pid;
# Run as the nginx user
user nginx nginx;
worker_processes 2;
error_log /opt/nginx/logs/error.log notice;
events {
worker_connections 1024;
use epoll;
}
http {
server_names_hash_bucket_size 64;
# More Linux performance awesomeness
tcp_nopush on;
tcp_nodelay off;
# Where to store the body of large client requests on disk
# NGINX will stream this to disk before posting it to your Mongrels,
# preventing slow clients tying up your app.
client_body_temp_path /var/spool/nginx-client-body 1 2;
# Max size of a request from a client (usually a POST). This will limit
# the size of file uploads to your app
client_body_buffer_size 8k;
client_header_buffer_size 1k;
client_max_body_size 1k;
large_client_header_buffers 1 1k;
## Timeouts
client_body_timeout 5;
client_header_timeout 5;
keepalive_timeout 5 5;
send_timeout 5;
## General Options
ignore_invalid_headers on;
limit_zone carboncal $binary_remote_addr 1m;
recursive_error_pages on;
sendfile on;
server_name_in_redirect off;
server_tokens off;
# passenger loading stuff
passenger_root /usr/local/rvm/gems/ruby-1.9.1-p378/gems/passenger-2.2.15;
passenger_ruby /usr/local/bin/passenger_ruby;
include /opt/nginx/conf/mime.types;
default_type application/octet-stream;
## Compression
gzip on;
gzip_buffers 16 8k;
#compression level between 1 and 9
gzip_comp_level 9;
gzip_http_version 1.0;
gzip_min_length 0;
gzip_types text/plain text/html text/css image/x-icon image/bmp application/x-javascript text/xml application/xml application/xml+rss text/javascript ;
gzip_vary on;
gzip_proxied any;
# Some version of IE 6 don't handle compression well on some mime-types, so just disable them
gzip_disable "MSIE [1-6].(?!.*SV1)";
# Send along useful info to the mongrels
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_max_temp_file_size 0;
## Log Format
log_format main '$remote_addr $host $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" "$http_user_agent" "$gzip_ratio"';
access_log /opt/nginx/logs/access.log main;
# virtual hosting
include /opt/nginx/vhosts/*;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment