* [bug#29628] services: nginx: Replace 'http-port' and 'https-port' with 'listen'.
@ 2017-12-09 18:41 Clément Lassieur
2017-12-09 19:35 ` [bug#29628] [PATCH] " Clément Lassieur
0 siblings, 1 reply; 4+ messages in thread
From: Clément Lassieur @ 2017-12-09 18:41 UTC (permalink / raw)
To: 29628
This patch allows to set several 'listen' directives, each of them being
a string.
See http://nginx.org/en/docs/http/ngx_http_core_module.html#listen.
It may break user configurations.
^ permalink raw reply [flat|nested] 4+ messages in thread
* [bug#29628] [PATCH] services: nginx: Replace 'http-port' and 'https-port' with 'listen'.
2017-12-09 18:41 [bug#29628] services: nginx: Replace 'http-port' and 'https-port' with 'listen' Clément Lassieur
@ 2017-12-09 19:35 ` Clément Lassieur
2017-12-16 21:29 ` Christopher Baines
0 siblings, 1 reply; 4+ messages in thread
From: Clément Lassieur @ 2017-12-09 19:35 UTC (permalink / raw)
To: 29628
* doc/guix.texi (Web Services, Version Control Services): Update accordingly.
* gnu/services/certbot.scm (certbot-nginx-server-configurations): Likewise.
* gnu/services/version-control.scm (%cgit-configuration-nginx): Likewise.
* gnu/services/web.scm (<nginx-server-configuration>,
emit-nginx-server-config): Likewise.
* gnu/tests/version-control.scm (%cgit-configuration-nginx,
%git-nginx-configuration): Likewise.
* gnu/tests/web.scm (%nginx-servers): Likewise.
---
doc/guix.texi | 28 +++++++++++++---------------
gnu/services/certbot.scm | 4 ++--
gnu/services/version-control.scm | 3 ++-
gnu/services/web.scm | 16 ++++++----------
gnu/tests/version-control.scm | 7 +++----
gnu/tests/web.scm | 4 ++--
6 files changed, 28 insertions(+), 34 deletions(-)
diff --git a/doc/guix.texi b/doc/guix.texi
index c14df7fcd..ab1e5d057 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -14814,7 +14814,7 @@ A simple example configuration is given below.
(list (nginx-server-configuration
(server-name '("www.example.com"))
(root "/srv/http/www.example.com")
- (https-port #f)
+ (listen '("80"))
(ssl-certificate #f)
(ssl-certificate-key #f))))))
@end example
@@ -14826,7 +14826,7 @@ blocks, as in this example:
@example
(simple-service 'my-extra-server nginx-service-type
(list (nginx-server-configuration
- (https-port #f)
+ (listen '("80"))
(ssl-certificate #f)
(ssl-certificate-key #f)
(root "/srv/http/extra-website")
@@ -14874,7 +14874,7 @@ HTTPS.
(list (nginx-server-configuration
(server-name '("www.example.com"))
(root "/srv/http/www.example.com")
- (https-port #f)
+ (listen '("80"))
(ssl-certificate #f)
(ssl-certificate-key #f))))))
@end example
@@ -14899,7 +14899,7 @@ requests with two servers.
(list (nginx-server-configuration
(server-name '("www.example.com"))
(root "/srv/http/www.example.com")
- (https-port #f)
+ (listen '("80"))
(ssl-certificate #f)
(ssl-certificate-key #f)
(locations
@@ -14933,17 +14933,15 @@ Data type representing the configuration of an nginx server block.
This type has the following parameters:
@table @asis
-@item @code{http-port} (default: @code{80})
-Nginx will listen for HTTP connection on this port. Set it at @code{#f} if
-nginx should not listen for HTTP (non secure) connection for this
-@dfn{server block}.
+@item @code{listen} (default: @code{'("80" "443 ssl")})
+Each @code{listen} directive sets the address and port for IP, or the
+path for a UNIX-domain socket on which the server will accept requests.
+Both address and port, or only address or only port can be specified.
+An address may also be a hostname, for example:
-@item @code{https-port} (default: @code{443})
-Nginx will listen for HTTPS connection on this port. Set it at @code{#f} if
-nginx should not listen for HTTPS (secure) connection for this @dfn{server block}.
-
-Note that nginx can listen for HTTP and HTTPS connections in the same
-@dfn{server block}.
+@example
+'("127.0.0.1:8000" "127.0.0.1" "8000" "*:8000" "localhost:8000")
+@end example
@item @code{server-name} (default: @code{(list 'default)})
A list of server names this server represents. @code{'default} represents the
@@ -17545,7 +17543,7 @@ serve the default @file{/srv/git} over HTTPS might be:
(server-blocks
(list
(nginx-server-configuration
- (http-port #f)
+ (listen '("443 ssl"))
(server-name "git.my-host.org")
(ssl-certificate
"/etc/letsencrypt/live/git.my-host.org/fullchain.pem")
diff --git a/gnu/services/certbot.scm b/gnu/services/certbot.scm
index dc072ea8d..fe7afe135 100644
--- a/gnu/services/certbot.scm
+++ b/gnu/services/certbot.scm
@@ -1,6 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2016 ng0 <ng0@we.make.ritual.n0.is>
;;; Copyright © 2016 Sou Bunnbu <iyzsong@member.fsf.org>
+;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -97,8 +98,7 @@
(map
(lambda (host)
(nginx-server-configuration
- (http-port 80)
- (https-port #f)
+ (listen '("80"))
(ssl-certificate #f)
(ssl-certificate-key #f)
(server-name (list host))
diff --git a/gnu/services/version-control.scm b/gnu/services/version-control.scm
index fce2ce1c2..6bf656949 100644
--- a/gnu/services/version-control.scm
+++ b/gnu/services/version-control.scm
@@ -2,6 +2,7 @@
;;; Copyright © 2016 ng0 <ng0@we.make.ritual.n0.is>
;;; Copyright © 2016 Sou Bunnbu <iyzsong@member.fsf.org>
;;; Copyright © 2017 Oleg Pykhalov <go.wigust@gmail.com>
+;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -231,7 +232,7 @@ access to exported repositories under @file{/srv/git}."
"fastcgi_param HTTP_HOST $server_name;"
"fastcgi_pass 127.0.0.1:9000;")))))
(try-files (list "$uri" "@cgit"))
- (https-port #f)
+ (listen '("80"))
(ssl-certificate #f)
(ssl-certificate-key #f))))
diff --git a/gnu/services/web.scm b/gnu/services/web.scm
index 9d713003c..7373d5671 100644
--- a/gnu/services/web.scm
+++ b/gnu/services/web.scm
@@ -4,6 +4,7 @@
;;; Copyright © 2016 ng0 <ng0@we.make.ritual.n0.is>
;;; Copyright © 2016, 2017 Julien Lepiller <julien@lepiller.eu>
;;; Copyright © 2017 Christopher Baines <mail@cbaines.net>
+;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -43,8 +44,7 @@
<nginx-server-configuration>
nginx-server-configuration
nginx-server-configuration?
- nginx-server-configuration-http-port
- nginx-server-configuartion-https-port
+ nginx-server-configuration-listen
nginx-server-configuration-server-name
nginx-server-configuration-root
nginx-server-configuration-locations
@@ -87,10 +87,8 @@
(define-record-type* <nginx-server-configuration>
nginx-server-configuration make-nginx-server-configuration
nginx-server-configuration?
- (http-port nginx-server-configuration-http-port
- (default 80))
- (https-port nginx-server-configuration-https-port
- (default 443))
+ (listen nginx-server-configuration-listen
+ (default '("80" "443 ssl")))
(server-name nginx-server-configuration-server-name
(default (list 'default)))
(root nginx-server-configuration-root
@@ -173,8 +171,7 @@ of index files."
" }\n"))))
(define (emit-nginx-server-config server)
- (let ((http-port (nginx-server-configuration-http-port server))
- (https-port (nginx-server-configuration-https-port server))
+ (let ((listen (nginx-server-configuration-listen server))
(server-name (nginx-server-configuration-server-name server))
(ssl-certificate (nginx-server-configuration-ssl-certificate server))
(ssl-certificate-key
@@ -203,8 +200,7 @@ of index files."
("ssl-certificate-key" . ,ssl-certificate-key)))
(list
" server {\n"
- (and/l http-port " listen " (number->string <>) ";\n")
- (and/l https-port " listen " (number->string <>) " ssl;\n")
+ (map (lambda (directive) (list " listen " directive ";\n")) listen)
" server_name " (config-domain-strings server-name) ";\n"
(and/l ssl-certificate " ssl_certificate " <> ";\n")
(and/l ssl-certificate-key " ssl_certificate_key " <> ";\n")
diff --git a/gnu/tests/version-control.scm b/gnu/tests/version-control.scm
index 2cbacf0ef..7367861b0 100644
--- a/gnu/tests/version-control.scm
+++ b/gnu/tests/version-control.scm
@@ -1,6 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2017 Oleg Pykhalov <go.wigust@gmail.com>
;;; Copyright © 2017 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -78,8 +79,7 @@
"fastcgi_param HTTP_HOST $server_name;"
"fastcgi_pass 127.0.0.1:9000;")))))
(try-files (list "$uri" "@cgit"))
- (http-port 19418)
- (https-port #f)
+ (listen '("19418"))
(ssl-certificate #f)
(ssl-certificate-key #f))))
@@ -211,8 +211,7 @@ HTTP-PORT."
(server-blocks
(list
(nginx-server-configuration
- (http-port 19418)
- (https-port #f)
+ (listen '("19418"))
(ssl-certificate #f)
(ssl-certificate-key #f)
(locations
diff --git a/gnu/tests/web.scm b/gnu/tests/web.scm
index 3fa272c67..4c6614dc4 100644
--- a/gnu/tests/web.scm
+++ b/gnu/tests/web.scm
@@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2017 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -45,8 +46,7 @@
;; Server blocks.
(list (nginx-server-configuration
(root "/srv")
- (http-port 8042)
- (https-port #f)
+ (listen '("8042"))
(ssl-certificate #f)
(ssl-certificate-key #f))))
--
2.15.1
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [bug#29628] [PATCH] services: nginx: Replace 'http-port' and 'https-port' with 'listen'.
2017-12-09 19:35 ` [bug#29628] [PATCH] " Clément Lassieur
@ 2017-12-16 21:29 ` Christopher Baines
2017-12-18 11:06 ` bug#29628: " Clément Lassieur
0 siblings, 1 reply; 4+ messages in thread
From: Christopher Baines @ 2017-12-16 21:29 UTC (permalink / raw)
To: Clément Lassieur; +Cc: 29628
[-- Attachment #1: Type: text/plain, Size: 827 bytes --]
Clément Lassieur <clement@lassieur.org> writes:
> * doc/guix.texi (Web Services, Version Control Services): Update accordingly.
> * gnu/services/certbot.scm (certbot-nginx-server-configurations): Likewise.
> * gnu/services/version-control.scm (%cgit-configuration-nginx): Likewise.
> * gnu/services/web.scm (<nginx-server-configuration>,
> emit-nginx-server-config): Likewise.
> * gnu/tests/version-control.scm (%cgit-configuration-nginx,
> %git-nginx-configuration): Likewise.
> * gnu/tests/web.scm (%nginx-servers): Likewise.
This looks good to me. Unfortunately this conflicts with some changes I
made to the nginx service, so it would be good if you could send an
updated patch.
I think an extra use of the old configuration might have also appeared
in the docs/services as well.
Thanks,
Chris
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 962 bytes --]
^ permalink raw reply [flat|nested] 4+ messages in thread
* bug#29628: [PATCH] services: nginx: Replace 'http-port' and 'https-port' with 'listen'.
2017-12-16 21:29 ` Christopher Baines
@ 2017-12-18 11:06 ` Clément Lassieur
0 siblings, 0 replies; 4+ messages in thread
From: Clément Lassieur @ 2017-12-18 11:06 UTC (permalink / raw)
To: Christopher Baines; +Cc: 29628-done
Christopher Baines <mail@cbaines.net> writes:
> Clément Lassieur <clement@lassieur.org> writes:
>
>> * doc/guix.texi (Web Services, Version Control Services): Update accordingly.
>> * gnu/services/certbot.scm (certbot-nginx-server-configurations): Likewise.
>> * gnu/services/version-control.scm (%cgit-configuration-nginx): Likewise.
>> * gnu/services/web.scm (<nginx-server-configuration>,
>> emit-nginx-server-config): Likewise.
>> * gnu/tests/version-control.scm (%cgit-configuration-nginx,
>> %git-nginx-configuration): Likewise.
>> * gnu/tests/web.scm (%nginx-servers): Likewise.
>
> This looks good to me. Unfortunately this conflicts with some changes I
> made to the nginx service, so it would be good if you could send an
> updated patch.
>
> I think an extra use of the old configuration might have also appeared
> in the docs/services as well.
I updated it and pushed it. Thank you for reviewing!
Clément
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2017-12-18 11:07 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-12-09 18:41 [bug#29628] services: nginx: Replace 'http-port' and 'https-port' with 'listen' Clément Lassieur
2017-12-09 19:35 ` [bug#29628] [PATCH] " Clément Lassieur
2017-12-16 21:29 ` Christopher Baines
2017-12-18 11:06 ` bug#29628: " Clément Lassieur
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/guix.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.