From f00fe275ca0414fd9b6a52068dfa28c228a9bdc3 Mon Sep 17 00:00:00 2001 From: xialj Date: Mon, 13 Feb 2023 14:33:09 +0800 Subject: [PATCH 01/13] allow domain like 'com.example.com:8080',use external port and nginx programmer manager listen thses ports --- backend/internal/nginx.js | 10 ++++++++++ backend/templates/_listen.conf | 3 +++ backend/templates/proxy_host.conf | 1 + 3 files changed, 14 insertions(+) diff --git a/backend/internal/nginx.js b/backend/internal/nginx.js index 52bdd66d..0021ba35 100644 --- a/backend/internal/nginx.js +++ b/backend/internal/nginx.js @@ -32,6 +32,16 @@ const internalNginx = { return internalNginx.deleteConfig(host_type, host); // Don't throw errors, as the file may not exist at all }) .then(() => { + boolean use_default_port = false; + let listen_ports = []; + _.each(host.domain_names, (domain_name) => { + if ( domain_name.indexOf(":") < 0 ){ + host.use_default_port = true; + }else{ + let listen_port = parseInt(domain_name.substring(domain_name.indexOf(":")+1)); + } + }); + return internalNginx.generateConfig(host_type, host); }) .then(() => { diff --git a/backend/templates/_listen.conf b/backend/templates/_listen.conf index 730f3a7c..26abc126 100644 --- a/backend/templates/_listen.conf +++ b/backend/templates/_listen.conf @@ -12,4 +12,7 @@ #listen [::]:443; {% endif %} {% endif %} +{% for listen_port in listen_ports %} + listen listen_port; +{% endfor %} server_name {{ domain_names | join: " " }}; diff --git a/backend/templates/proxy_host.conf b/backend/templates/proxy_host.conf index ec30cca0..3ce57a7e 100644 --- a/backend/templates/proxy_host.conf +++ b/backend/templates/proxy_host.conf @@ -56,6 +56,7 @@ proxy_http_version 1.1; {% if allow_websocket_upgrade == 1 or allow_websocket_upgrade == true %} proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $http_connection; + proxy_set_header Host $host:$server_port; proxy_http_version 1.1; {% endif %} From fb1e4bd46c2a7826a043aa28ad47ab8543df92b2 Mon Sep 17 00:00:00 2001 From: Xialijun Date: Mon, 31 Jul 2023 22:55:14 +0800 Subject: [PATCH 02/13] Update proxy_host.conf by replace $host:$server with $http_host --- backend/templates/proxy_host.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/templates/proxy_host.conf b/backend/templates/proxy_host.conf index 3ce57a7e..99585e4f 100644 --- a/backend/templates/proxy_host.conf +++ b/backend/templates/proxy_host.conf @@ -56,7 +56,7 @@ proxy_http_version 1.1; {% if allow_websocket_upgrade == 1 or allow_websocket_upgrade == true %} proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $http_connection; - proxy_set_header Host $host:$server_port; + proxy_set_header Host $http_host; proxy_http_version 1.1; {% endif %} From 4ebfb4247c30ddb4019d61ec941908c86c492e1e Mon Sep 17 00:00:00 2001 From: xialj Date: Mon, 31 Jul 2023 23:39:25 +0800 Subject: [PATCH 03/13] bugfix when create a proxy-host.conf can with more ports --- backend/internal/nginx.js | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/backend/internal/nginx.js b/backend/internal/nginx.js index c04fd150..68ddf67d 100644 --- a/backend/internal/nginx.js +++ b/backend/internal/nginx.js @@ -32,17 +32,7 @@ const internalNginx = { // Delete the .err file too return internalNginx.deleteConfig(host_type, host, false, true); }) - .then(() => { - boolean use_default_port = false; - let listen_ports = []; - _.each(host.domain_names, (domain_name) => { - if ( domain_name.indexOf(":") < 0 ){ - host.use_default_port = true; - }else{ - let listen_port = parseInt(domain_name.substring(domain_name.indexOf(":")+1)); - } - }); - + .then(() => { return internalNginx.generateConfig(host_type, host); }) .then(() => { @@ -242,6 +232,17 @@ const internalNginx = { // Set the IPv6 setting for the host host.ipv6 = internalNginx.ipv6Enabled(); + + let listen_ports = []; + + host.domain_names.map(function (domain_name) { + if ( domain_name.indexOf(":") > 0 ){ + listen_ports.push(parseInt(domain_name.substring(domain_name.indexOf(":")+1))); + } + }); + if ( listen_ports.length > 0 ){ + host.listen_ports = listen_ports; + } locationsPromise.then(() => { renderEngine @@ -255,7 +256,6 @@ const internalNginx = { // Restore locations array host.locations = origLocations; - resolve(true); }) .catch((err) => { From dec0ff31eb076e26d1e06f3c1eaea66768c77bcf Mon Sep 17 00:00:00 2001 From: xialj Date: Mon, 31 Jul 2023 23:52:27 +0800 Subject: [PATCH 04/13] bugfix when create a proxy-host.conf can with more ports --- backend/internal/nginx.js | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/backend/internal/nginx.js b/backend/internal/nginx.js index 68ddf67d..df53a0c8 100644 --- a/backend/internal/nginx.js +++ b/backend/internal/nginx.js @@ -234,14 +234,15 @@ const internalNginx = { host.ipv6 = internalNginx.ipv6Enabled(); let listen_ports = []; - - host.domain_names.map(function (domain_name) { - if ( domain_name.indexOf(":") > 0 ){ - listen_ports.push(parseInt(domain_name.substring(domain_name.indexOf(":")+1))); + if(nice_host_type === 'proxy_host'){ + host.domain_names.map(function (domain_name) { + if ( domain_name.indexOf(":") > 0 ){ + listen_ports.push(parseInt(domain_name.substring(domain_name.indexOf(":")+1))); + } + }); + if ( listen_ports.length > 0 ){ + host.listen_ports = listen_ports; } - }); - if ( listen_ports.length > 0 ){ - host.listen_ports = listen_ports; } locationsPromise.then(() => { From 05831fcd445a6d47e1681806567c5a3cf13f96ba Mon Sep 17 00:00:00 2001 From: xialj Date: Mon, 31 Jul 2023 23:55:03 +0800 Subject: [PATCH 05/13] formatting nginx.js --- backend/internal/nginx.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/internal/nginx.js b/backend/internal/nginx.js index df53a0c8..c616eaa2 100644 --- a/backend/internal/nginx.js +++ b/backend/internal/nginx.js @@ -32,7 +32,7 @@ const internalNginx = { // Delete the .err file too return internalNginx.deleteConfig(host_type, host, false, true); }) - .then(() => { + .then(() => { return internalNginx.generateConfig(host_type, host); }) .then(() => { From c166f6b41f086fd3b93efcba6c4880cccf68ad83 Mon Sep 17 00:00:00 2001 From: xialj Date: Mon, 31 Jul 2023 23:56:25 +0800 Subject: [PATCH 06/13] formatting nginx.js --- backend/internal/nginx.js | 1 + 1 file changed, 1 insertion(+) diff --git a/backend/internal/nginx.js b/backend/internal/nginx.js index c616eaa2..fd0f73d1 100644 --- a/backend/internal/nginx.js +++ b/backend/internal/nginx.js @@ -257,6 +257,7 @@ const internalNginx = { // Restore locations array host.locations = origLocations; + resolve(true); }) .catch((err) => { From bbeb4f5a605497fbde1de4721f5ed7f2863c3979 Mon Sep 17 00:00:00 2001 From: xialj Date: Mon, 31 Jul 2023 23:56:59 +0800 Subject: [PATCH 07/13] formatting nginx.js --- backend/internal/nginx.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/internal/nginx.js b/backend/internal/nginx.js index fd0f73d1..f62cc808 100644 --- a/backend/internal/nginx.js +++ b/backend/internal/nginx.js @@ -257,7 +257,7 @@ const internalNginx = { // Restore locations array host.locations = origLocations; - + resolve(true); }) .catch((err) => { From 7f2552d77f1c37ceb6cc9293653b688ab922bb7d Mon Sep 17 00:00:00 2001 From: xialj Date: Tue, 1 Aug 2023 00:01:22 +0800 Subject: [PATCH 08/13] formatting nginx.js --- backend/internal/nginx.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/internal/nginx.js b/backend/internal/nginx.js index f62cc808..28c56975 100644 --- a/backend/internal/nginx.js +++ b/backend/internal/nginx.js @@ -234,7 +234,7 @@ const internalNginx = { host.ipv6 = internalNginx.ipv6Enabled(); let listen_ports = []; - if(nice_host_type === 'proxy_host'){ + if ( nice_host_type === 'proxy_host' ) { host.domain_names.map(function (domain_name) { if ( domain_name.indexOf(":") > 0 ){ listen_ports.push(parseInt(domain_name.substring(domain_name.indexOf(":")+1))); From 700d908abd75c9adba1e229593c4783c3dca75ff Mon Sep 17 00:00:00 2001 From: xialj Date: Tue, 1 Aug 2023 00:04:11 +0800 Subject: [PATCH 09/13] varible listen_ports should be in case which nice_host_type is proxy_host --- backend/internal/nginx.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/backend/internal/nginx.js b/backend/internal/nginx.js index 28c56975..40d8fd86 100644 --- a/backend/internal/nginx.js +++ b/backend/internal/nginx.js @@ -233,8 +233,9 @@ const internalNginx = { // Set the IPv6 setting for the host host.ipv6 = internalNginx.ipv6Enabled(); - let listen_ports = []; + if ( nice_host_type === 'proxy_host' ) { + let listen_ports = []; host.domain_names.map(function (domain_name) { if ( domain_name.indexOf(":") > 0 ){ listen_ports.push(parseInt(domain_name.substring(domain_name.indexOf(":")+1))); From 5dbb0b921e301800a44f913b472fa04ed0420cd6 Mon Sep 17 00:00:00 2001 From: xialj Date: Tue, 1 Aug 2023 00:05:33 +0800 Subject: [PATCH 10/13] Strings must use singlequote quotes --- backend/internal/nginx.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/backend/internal/nginx.js b/backend/internal/nginx.js index 40d8fd86..a8310398 100644 --- a/backend/internal/nginx.js +++ b/backend/internal/nginx.js @@ -236,9 +236,9 @@ const internalNginx = { if ( nice_host_type === 'proxy_host' ) { let listen_ports = []; - host.domain_names.map(function (domain_name) { - if ( domain_name.indexOf(":") > 0 ){ - listen_ports.push(parseInt(domain_name.substring(domain_name.indexOf(":")+1))); + host.domain_names.map( function (domain_name) { + if ( domain_name.indexOf(':') > 0 ){ + listen_ports.push(parseInt(domain_name.substring(domain_name.indexOf(':')+1))); } }); if ( listen_ports.length > 0 ){ From 145fe2d24f221f86b1b9684c7c4f1deba0919972 Mon Sep 17 00:00:00 2001 From: xialj Date: Tue, 1 Aug 2023 00:17:40 +0800 Subject: [PATCH 11/13] Strings must use singlequote quotes --- backend/internal/nginx.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/internal/nginx.js b/backend/internal/nginx.js index a8310398..e2c3cde5 100644 --- a/backend/internal/nginx.js +++ b/backend/internal/nginx.js @@ -235,7 +235,7 @@ const internalNginx = { if ( nice_host_type === 'proxy_host' ) { - let listen_ports = []; + let listen_ports = []; host.domain_names.map( function (domain_name) { if ( domain_name.indexOf(':') > 0 ){ listen_ports.push(parseInt(domain_name.substring(domain_name.indexOf(':')+1))); From 1a983651a5e8daece64224a9edcb1e03b398443b Mon Sep 17 00:00:00 2001 From: xialj Date: Fri, 11 Aug 2023 11:12:06 +0800 Subject: [PATCH 12/13] proxy_set_header Host is not useful in proxy_host.conf,it should be modify in conf.d/include/proxy.conf --- backend/templates/proxy_host.conf | 1 - 1 file changed, 1 deletion(-) diff --git a/backend/templates/proxy_host.conf b/backend/templates/proxy_host.conf index b5a10ed2..81a542ea 100644 --- a/backend/templates/proxy_host.conf +++ b/backend/templates/proxy_host.conf @@ -36,7 +36,6 @@ proxy_http_version 1.1; {% if allow_websocket_upgrade == 1 or allow_websocket_upgrade == true %} proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $http_connection; - proxy_set_header Host $http_host; proxy_http_version 1.1; {% endif %} From 4cb39fe332bbca97d6a51ac775184c9f456006af Mon Sep 17 00:00:00 2001 From: xialj Date: Fri, 11 Aug 2023 11:13:39 +0800 Subject: [PATCH 13/13] is more suitable for ,if listen port is no 80 or 443 --- docker/rootfs/etc/nginx/conf.d/include/proxy.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/rootfs/etc/nginx/conf.d/include/proxy.conf b/docker/rootfs/etc/nginx/conf.d/include/proxy.conf index d346c4ef..11c5bb99 100644 --- a/docker/rootfs/etc/nginx/conf.d/include/proxy.conf +++ b/docker/rootfs/etc/nginx/conf.d/include/proxy.conf @@ -1,5 +1,5 @@ add_header X-Served-By $host; -proxy_set_header Host $host; +proxy_set_header Host $http_host; proxy_set_header X-Forwarded-Scheme $scheme; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;