nanha
11/7/2012 - 12:49 PM

nginx configuration for load-balanced proxy-pass with unix-sockets

nginx configuration for load-balanced proxy-pass with unix-sockets

# placed in /etc/nginx/conf.d/upstream.conf

upstream rails_app {
    server unix:/var/www/rails_app/shared/sockets/rails_app.socket weight=10 max_fails=3 fail_timeout=30s;
    server unix:/var/www/rails_app2/shared/sockets/rails_app.socket weight=10 max_fails=3 fail_timeout=30s;
}
# available in /etc/nginx/sites-enabled/rails_app.conf

server {
	listen 80;
	server_name rails.app.tld;
    
	access_log /var/log/nginx/rails.app.tld.access.log;
	error_log /var/log/nginx/rails.app.tld.error.log;

	location /images {
		root /var/www/rails_app2/shared/public;
	}

	location / {
		proxy_pass http://rails_app;
	}
}
# available in /etc/nginx/nginx.conf

user www-data;
worker_processes 4;
pid /var/run/nginx.pid;

events {
	worker_connections 768;
}

http {
	sendfile on;
	client_max_body_size 100M;
	tcp_nopush on;
	tcp_nodelay on;
	keepalive_timeout 65;
	types_hash_max_size 2048;

	include /etc/nginx/mime.types;
	default_type application/octet-stream;

	##
	# Logging Settings
	##

	access_log /var/log/nginx/access.log;
	error_log /var/log/nginx/error.log;

	##
	# Gzip Settings
	##

	gzip on;
	gzip_disable "msie6";

	include /etc/nginx/proxy_params;
	include /etc/nginx/conf.d/*.conf;
	include /etc/nginx/sites-enabled/*;
}