Created
October 15, 2010 05:49
-
-
Save ezodude/627703 to your computer and use it in GitHub Desktop.
Nginx optimised config with Passenger
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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