diff --git a/setup/splashpage.sh b/setup/splashpage.sh index 321966727..75c976db9 100755 --- a/setup/splashpage.sh +++ b/setup/splashpage.sh @@ -34,11 +34,11 @@ if [[ "${arg_retire_reason}" != "" || "${existing_infra}" != "${current_infra}" echo "Showing progress bar on all subdomains in retired mode or infra update. retire: ${arg_retire_reason} existing: ${existing_infra} current: ${current_infra}" rm -f ${PLATFORM_DATA_DIR}/nginx/applications/* ${box_src_dir}/node_modules/.bin/ejs-cli -f "${script_dir}/start/nginx/appconfig.ejs" \ - -O "{ \"vhost\": \"~^(.+)\$\", \"adminOrigin\": \"${admin_origin}\", \"endpoint\": \"splash\", \"sourceDir\": \"${SETUP_WEBSITE_DIR}\", \"certFilePath\": \"cert/host.cert\", \"keyFilePath\": \"cert/host.key\", \"xFrameOptions\": \"SAMEORIGIN\", \"robotsTxtQuoted\": null }" > "${PLATFORM_DATA_DIR}/nginx/applications/admin.conf" + -O "{ \"vhost\": \"~^(.+)\$\", \"adminOrigin\": \"${admin_origin}\", \"endpoint\": \"splash\", \"sourceDir\": \"${SETUP_WEBSITE_DIR}\", \"certFilePath\": \"cert/host.cert\", \"keyFilePath\": \"cert/host.key\", \"xFrameOptions\": \"SAMEORIGIN\", \"robotsTxtQuoted\": null, \"hasIPv6\": false }" > "${PLATFORM_DATA_DIR}/nginx/applications/admin.conf" else echo "Show progress bar only on admin domain for normal update" ${box_src_dir}/node_modules/.bin/ejs-cli -f "${script_dir}/start/nginx/appconfig.ejs" \ - -O "{ \"vhost\": \"${admin_fqdn}\", \"adminOrigin\": \"${admin_origin}\", \"endpoint\": \"splash\", \"sourceDir\": \"${SETUP_WEBSITE_DIR}\", \"certFilePath\": \"cert/host.cert\", \"keyFilePath\": \"cert/host.key\", \"xFrameOptions\": \"SAMEORIGIN\", \"robotsTxtQuoted\": null }" > "${PLATFORM_DATA_DIR}/nginx/applications/admin.conf" + -O "{ \"vhost\": \"${admin_fqdn}\", \"adminOrigin\": \"${admin_origin}\", \"endpoint\": \"splash\", \"sourceDir\": \"${SETUP_WEBSITE_DIR}\", \"certFilePath\": \"cert/host.cert\", \"keyFilePath\": \"cert/host.key\", \"xFrameOptions\": \"SAMEORIGIN\", \"robotsTxtQuoted\": null, \"hasIPv6\": false }" > "${PLATFORM_DATA_DIR}/nginx/applications/admin.conf" fi if [[ "${arg_retire_reason}" == "migrate" ]]; then diff --git a/setup/start/nginx/appconfig.ejs b/setup/start/nginx/appconfig.ejs index b7e4058fb..81ce74832 100644 --- a/setup/start/nginx/appconfig.ejs +++ b/setup/start/nginx/appconfig.ejs @@ -5,14 +5,18 @@ map $http_upgrade $connection_upgrade { } server { -<% if (vhost) { %> - listen 443 http2; - listen [::]:443 http2; +<% if (vhost) { -%> server_name <%= vhost %>; -<% } else { %> + listen 443 http2; +<% if (hasIPv6) { -%> + listen [::]:443 http2; +<% } -%> +<% } else { -%> listen 443 http2 default_server; +<% if (hasIPv6) { -%> listen [::]:443 http2 default_server; -<% } %> +<% } -%> +<% } -%> ssl on; # paths are relative to prefix and not to this file diff --git a/src/nginx.js b/src/nginx.js index 536d44acb..7e8e88bb2 100644 --- a/src/nginx.js +++ b/src/nginx.js @@ -32,6 +32,7 @@ function configureAdmin(certFilePath, keyFilePath, configFileName, vhost, callba sourceDir: path.resolve(__dirname, '..'), adminOrigin: config.adminOrigin(), vhost: vhost, // if vhost is empty it will become the default_server + hasIPv6: config.hasIPv6(), endpoint: 'admin', certFilePath: certFilePath, keyFilePath: keyFilePath, @@ -60,6 +61,7 @@ function configureApp(app, certFilePath, keyFilePath, callback) { sourceDir: sourceDir, adminOrigin: config.adminOrigin(), vhost: vhost, + hasIPv6: config.hasIPv6(), port: app.httpPort, endpoint: endpoint, certFilePath: certFilePath,