<% @path = "/etc/nginx/rubber/tools.conf" %> # This server is setup to serve http. server { listen <%= rubber_env.web_tools_port %>; server_name <%= rubber_env.full_host %>; root /var/www; rewrite (.*) https://$host:<%= rubber_env.web_tools_ssl_port %>$1 break; } # Web Tools Proxies <% Array(rubber_env.web_tools_proxies).each do |name, settings| proxy_host = rubber_instances.for_role(settings.role).first.full_name rescue nil next unless proxy_host host = "#{name}-#{rubber_env.full_host}" host_and_port = "#{host}:#{rubber_env.web_tools_ssl_port}" # don't use settings.path here - mapping the host/port is sufficient, # and path can be done in tools-index.html. This allows admin sites # that hit other paths on same host/port to still function, e.g. elasticsearch proxy_url = "http://#{proxy_host}:#{settings.port}/" %> server { listen <%= rubber_env.web_tools_ssl_port %>; server_name <%= host %>; ssl on; <% if rubber_env.use_ssl_key %> ssl_certificate <%= Rubber.root %>/config/<%= rubber_env.domain %>.crt; ssl_certificate_key <%= Rubber.root %>/config/<%= rubber_env.domain %>.key; <% else %> ssl_certificate /etc/ssl/certs/ssl-cert-snakeoil.pem; ssl_certificate_key /etc/ssl/private/ssl-cert-snakeoil.key; <% end %> auth_basic "Rubber Admin Tools"; auth_basic_user_file <%= Rubber.root %>/config/<%= rubber_env.app_name %>.auth; client_max_body_size 10M; root /var/www; location / { proxy_pass <%= proxy_url %>; } } <% end %> # This server is setup to serve https. server { listen <%= rubber_env.web_tools_ssl_port %>; server_name <%= rubber_env.full_host %>; ssl on; <% if rubber_env.use_ssl_key %> ssl_certificate <%= Rubber.root %>/config/<%= rubber_env.domain %>.crt; ssl_certificate_key <%= Rubber.root %>/config/<%= rubber_env.domain %>.key; <% else %> ssl_certificate /etc/ssl/certs/ssl-cert-snakeoil.pem; ssl_certificate_key /etc/ssl/private/ssl-cert-snakeoil.key; <% end %> auth_basic "Rubber Admin Tools"; auth_basic_user_file <%= Rubber.root %>/config/<%= rubber_env.app_name %>.auth; client_max_body_size 10M; root /var/www; location / { # If the file exists as a static file serve it directly without # running all the other rewrite tests on it if (-f $request_filename) { break; } # check for index.html for directory index # if its there on the filesystem then rewite # the url to add /index.html to the end of it # and then break to send it to the next config rules. if (-f $request_filename/index.html) { rewrite (.*) $1/index.html break; } } include /etc/nginx/rubber/tools/*.conf; }