# Recipe Call template "#{node[:nginx][:dir]}/sites-available/" do source "nginx_node_app.erb" owner "root" group "root" mode 0644 variables( :app_name => "", :app_port => "", :app_domains => "" ) end # Template Contents upstream <%= @params[:app_name] %> { ip_hash; server localhost:<%= @params[:app_port] %> weight=10 max_fails=3 fail_timeout=30s; # Reverse proxy to localhost } server { listen 80; server_name <%= @params[:app_domains] %>; access_log /var/log/nginx/nginx.access.<%= @params[:app_name] %>.log; error_log /var/log/nginx/nginx_error.<%= @params[:app_name] %>.log debug; location / { proxy_pass http://<%= @params[:app_name] %>; # Load balance the URL location "/" to the upstream lb-subprint proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; } error_page 500 502 503 504 /50x.html; location = /50x.html { root /var/www/nginx-default; } }