diff --git a/src/nginxconfig/generators/conf/website.conf.js b/src/nginxconfig/generators/conf/website.conf.js index 3146ec4..2da113e 100644 --- a/src/nginxconfig/generators/conf/website.conf.js +++ b/src/nginxconfig/generators/conf/website.conf.js @@ -62,11 +62,23 @@ const httpsListen = domain => { // HTTPS config.push(['listen', `${domain.server.listenIpv4.computed === '*' ? '' : `${domain.server.listenIpv4.computed}:`}443 ssl${domain.https.http2.computed ? ' http2' : ''}`]); + // HTTP/3 + if (domain.https.http3.computed) + config.push(['listen', + `${domain.server.listenIpv4.computed === '*' ? '' : `${domain.server.listenIpv4.computed}:`}443 http3` + + `${domain.https.portReuse.computed ? ' reuseport' : ''}`, + ]); + // v6 if (domain.server.listenIpv6.computed) config.push(['listen', `[${domain.server.listenIpv6.computed}]:443 ssl${domain.https.http2.computed ? ' http2' : ''}`]); + // v6 HTTP/3 + if (domain.server.listenIpv6.computed && domain.https.http3.computed) + config.push(['listen', + `[${domain.server.listenIpv6.computed}]:443 http3${domain.https.portReuse.computed ? ' reuseport' : ''}`, + ]); return config; }; diff --git a/src/nginxconfig/i18n/en/templates/domain_sections/https.js b/src/nginxconfig/i18n/en/templates/domain_sections/https.js index 10f2759..1191f41 100644 --- a/src/nginxconfig/i18n/en/templates/domain_sections/https.js +++ b/src/nginxconfig/i18n/en/templates/domain_sections/https.js @@ -30,6 +30,10 @@ export default { enableEncryptedSslConnection: `${common.enable} encrypted ${common.ssl} connections`, http2: `${common.http}/2`, enableHttp2Connections: `${common.enable} ${common.http}/2 connections`, + http3: `${common.http}/3`, + enableHttp3Connections: `${common.enable} ${common.http}/3 connections`, + portReuse: 'Reuseport', + enableReuseOfPort: `${common.enable} reuseport to generate a listening socket per worker`, forceHttps: `Force ${common.https}`, hsts: 'HSTS', enableStrictTransportSecurity: `${common.enable} Strict Transport Security, requiring HTTPS connections`, diff --git a/src/nginxconfig/i18n/en/templates/global_sections/https.js b/src/nginxconfig/i18n/en/templates/global_sections/https.js index ddef688..ab90a5e 100644 --- a/src/nginxconfig/i18n/en/templates/global_sections/https.js +++ b/src/nginxconfig/i18n/en/templates/global_sections/https.js @@ -47,4 +47,9 @@ export default { ipv4Only: `${ipv4} only`, ipv6Only: `${ipv6} only`, ipv4AndIpv6: `${ipv4} & ${ipv6}`, + http3Warning1: 'HTTP/3 isn\'t a standard NGINX module, check the ', + http3Warning2: 'NGINX QUIC readme ', + http3Warning3: ' or the ', + http3Warning4: 'Cloudflare quiche project ', + http3Warning5: ' for how to build NGINX with HTTP/3!', }; diff --git a/src/nginxconfig/i18n/fr/templates/domain_sections/https.js b/src/nginxconfig/i18n/fr/templates/domain_sections/https.js index 4bedb2f..18f7153 100644 --- a/src/nginxconfig/i18n/fr/templates/domain_sections/https.js +++ b/src/nginxconfig/i18n/fr/templates/domain_sections/https.js @@ -30,6 +30,10 @@ export default { enableEncryptedSslConnection: `${common.enable} les connexions ${common.ssl}`, http2: `${common.http}/2`, enableHttp2Connections: `${common.enable} les connexions ${common.http}/2`, + http3: `${common.http}/3`, + enableHttp3Connections: `${common.enable} les connexions ${common.http}/3`, + portReuse: 'Reuseport', // TODO: translate + enableReuseOfPort: `${common.enable} reuseport to generate a listening socket per worker`, // TODO: translate forceHttps: `Forcer ${common.https}`, hsts: 'HSTS', enableStrictTransportSecurity: `${common.enable} Strict Transport Security, exigeant HTTPS`, diff --git a/src/nginxconfig/i18n/fr/templates/global_sections/https.js b/src/nginxconfig/i18n/fr/templates/global_sections/https.js index 1a457a6..bc094cd 100644 --- a/src/nginxconfig/i18n/fr/templates/global_sections/https.js +++ b/src/nginxconfig/i18n/fr/templates/global_sections/https.js @@ -47,4 +47,9 @@ export default { ipv4Only: `${ipv4} seulement`, ipv6Only: `${ipv6} seulement`, ipv4AndIpv6: `${ipv4} & ${ipv6}`, + http3Warning1: 'HTTP/3 isn\'t a standard NGINX module, check the ', // TODO: translate + http3Warning2: 'NGINX QUIC readme ', // TODO: translate + http3Warning3: ' or the ', // TODO: translate + http3Warning4: 'Cloudflare quiche project ', // TODO: translate + http3Warning5: ' for how to build NGINX with HTTP/3!', // TODO: translate }; diff --git a/src/nginxconfig/i18n/pt-br/templates/domain_sections/https.js b/src/nginxconfig/i18n/pt-br/templates/domain_sections/https.js index 1ac0cef..910c6e4 100644 --- a/src/nginxconfig/i18n/pt-br/templates/domain_sections/https.js +++ b/src/nginxconfig/i18n/pt-br/templates/domain_sections/https.js @@ -30,6 +30,10 @@ export default { enableEncryptedSslConnection: `${common.enable} conexões ${common.ssl} criptografadas`, http2: `${common.http}/2`, enableHttp2Connections: `${common.enable} conexões ${common.http}/2`, + http3: `${common.http}/3`, + enableHttp3Connections: `${common.enable} conexões ${common.http}/3`, + portReuse: 'Reuseport', // TODO: translate + enableReuseOfPort: `${common.enable} reuseport to generate a listening socket per worker`, // TODO: translate forceHttps: `Forçar ${common.https}`, hsts: 'HSTS', enableStrictTransportSecurity: `${common.enable} Strict Transport Security, requerendo conexões HTTPS`, diff --git a/src/nginxconfig/i18n/pt-br/templates/global_sections/https.js b/src/nginxconfig/i18n/pt-br/templates/global_sections/https.js index a385c59..5a8f566 100644 --- a/src/nginxconfig/i18n/pt-br/templates/global_sections/https.js +++ b/src/nginxconfig/i18n/pt-br/templates/global_sections/https.js @@ -47,4 +47,9 @@ export default { ipv4Only: `${ipv4} apenas`, ipv6Only: `${ipv6} apenas`, ipv4AndIpv6: `${ipv4} & ${ipv6}`, + http3Warning1: 'HTTP/3 isn\'t a standard NGINX module, check the ', // TODO: translate + http3Warning2: 'NGINX QUIC readme ', // TODO: translate + http3Warning3: ' or the ', // TODO: translate + http3Warning4: 'Cloudflare quiche project ', // TODO: translate + http3Warning5: ' for how to build NGINX with HTTP/3!', // TODO: translate }; diff --git a/src/nginxconfig/i18n/ru/templates/domain_sections/https.js b/src/nginxconfig/i18n/ru/templates/domain_sections/https.js index 4dd4635..c2d7c1b 100644 --- a/src/nginxconfig/i18n/ru/templates/domain_sections/https.js +++ b/src/nginxconfig/i18n/ru/templates/domain_sections/https.js @@ -30,6 +30,10 @@ export default { enableEncryptedSslConnection: `${common.enable} зашифрованные ${common.ssl} соединения`, http2: `${common.http}/2`, enableHttp2Connections: `${common.enable} ${common.http}/2 соединения`, + http3: `${common.http}/3`, + enableHttp3Connections: `${common.enable} ${common.http}/3 соединения`, + portReuse: 'Reuseport', // TODO: translate + enableReuseOfPort: `${common.enable} reuseport to generate a listening socket per worker`, // TODO: translate forceHttps: `Использовать только ${common.https}`, hsts: 'HSTS', enableStrictTransportSecurity: `${common.enable} Strict Transport Security, требующая HTTPS соединения`, diff --git a/src/nginxconfig/i18n/ru/templates/global_sections/https.js b/src/nginxconfig/i18n/ru/templates/global_sections/https.js index 28f47de..70a78a3 100644 --- a/src/nginxconfig/i18n/ru/templates/global_sections/https.js +++ b/src/nginxconfig/i18n/ru/templates/global_sections/https.js @@ -47,4 +47,9 @@ export default { ipv4Only: `только ${ipv4}`, ipv6Only: `только ${ipv6}`, ipv4AndIpv6: `${ipv4} & ${ipv6}`, + http3Warning1: 'HTTP/3 isn\'t a standard NGINX module, check the ', // TODO: translate + http3Warning2: 'NGINX QUIC readme ', // TODO: translate + http3Warning3: ' or the ', // TODO: translate + http3Warning4: 'Cloudflare quiche project ', // TODO: translate + http3Warning5: ' for how to build NGINX with HTTP/3!', // TODO: translate }; diff --git a/src/nginxconfig/i18n/zh-cn/templates/domain_sections/https.js b/src/nginxconfig/i18n/zh-cn/templates/domain_sections/https.js index 83f4a4d..1f5d91d 100644 --- a/src/nginxconfig/i18n/zh-cn/templates/domain_sections/https.js +++ b/src/nginxconfig/i18n/zh-cn/templates/domain_sections/https.js @@ -30,6 +30,10 @@ export default { enableEncryptedSslConnection: `${common.enable}加密的${common.ssl}连接`, http2: `${common.http}/2`, enableHttp2Connections: `${common.enable} ${common.http}/2 连接`, + http3: `${common.http}/3`, + enableHttp3Connections: `${common.enable} ${common.http}/3 连接`, + portReuse: 'Reuseport', // TODO: translate + enableReuseOfPort: `${common.enable} reuseport to generate a listening socket per worker`, // TODO: translate forceHttps: `强制 ${common.https}`, hsts: 'HSTS', enableStrictTransportSecurity: `${common.enable}HSTS(强制客户端、浏览器等使用 HTTPS 与服务器创建链接),需要HTTPS连接`, diff --git a/src/nginxconfig/i18n/zh-cn/templates/global_sections/https.js b/src/nginxconfig/i18n/zh-cn/templates/global_sections/https.js index 9e93323..fdc3fe1 100644 --- a/src/nginxconfig/i18n/zh-cn/templates/global_sections/https.js +++ b/src/nginxconfig/i18n/zh-cn/templates/global_sections/https.js @@ -47,4 +47,9 @@ export default { ipv4Only: `${ipv4}`, ipv6Only: `${ipv6}`, ipv4AndIpv6: `${ipv4} & ${ipv6}`, + http3Warning1: 'HTTP/3 isn\'t a standard NGINX module, check the ', // TODO: translate + http3Warning2: 'NGINX QUIC readme ', // TODO: translate + http3Warning3: ' or the ', // TODO: translate + http3Warning4: 'Cloudflare quiche project ', // TODO: translate + http3Warning5: ' for how to build NGINX with HTTP/3!', // TODO: translate }; diff --git a/src/nginxconfig/i18n/zh-tw/templates/domain_sections/https.js b/src/nginxconfig/i18n/zh-tw/templates/domain_sections/https.js index 2402e3f..1416a45 100644 --- a/src/nginxconfig/i18n/zh-tw/templates/domain_sections/https.js +++ b/src/nginxconfig/i18n/zh-tw/templates/domain_sections/https.js @@ -30,6 +30,10 @@ export default { enableEncryptedSslConnection: `${common.enable}加密的${common.ssl}連接`, http2: `${common.http}/2`, enableHttp2Connections: `${common.enable} ${common.http}/2 連接`, + http3: `${common.http}/3`, + enableHttp3Connections: `${common.enable} ${common.http}/3 連接`, + portReuse: 'Reuseport', // TODO: translate + enableReuseOfPort: `${common.enable} reuseport to generate a listening socket per worker`, // TODO: translate forceHttps: `強制 ${common.https}`, hsts: 'HSTS', enableStrictTransportSecurity: `${common.enable}HSTS(強制用戶端、瀏覽器等使用HTTPS與服務器創建連結),需要HTTPS連接`, diff --git a/src/nginxconfig/i18n/zh-tw/templates/global_sections/https.js b/src/nginxconfig/i18n/zh-tw/templates/global_sections/https.js index 1d36a0b..8c19c52 100644 --- a/src/nginxconfig/i18n/zh-tw/templates/global_sections/https.js +++ b/src/nginxconfig/i18n/zh-tw/templates/global_sections/https.js @@ -47,4 +47,9 @@ export default { ipv4Only: `${ipv4}`, ipv6Only: `${ipv6}`, ipv4AndIpv6: `${ipv4} & ${ipv6}`, + http3Warning1: 'HTTP/3 isn\'t a standard NGINX module, check the ', // TODO: translate + http3Warning2: 'NGINX QUIC readme ', // TODO: translate + http3Warning3: ' or the ', // TODO: translate + http3Warning4: 'Cloudflare quiche project ', // TODO: translate + http3Warning5: ' for how to build NGINX with HTTP/3!', // TODO: translate }; diff --git a/src/nginxconfig/templates/domain_sections/https.vue b/src/nginxconfig/templates/domain_sections/https.vue index ef716da..8ae74ea 100644 --- a/src/nginxconfig/templates/domain_sections/https.vue +++ b/src/nginxconfig/templates/domain_sections/https.vue @@ -62,6 +62,42 @@ THE SOFTWARE. +
+
+ +
+
+
+
+
+ + + {{ $t('templates.domainSections.https.enableHttp3Connections') }} + +
+
+
+
+
+ +
+
+ +
+
+
+
+
+ + + {{ $t('templates.domainSections.https.enableReuseOfPort') }} + +
+
+
+
+
+
@@ -188,12 +224,30 @@ THE SOFTWARE.
+ +