Commit graph

219 commits

Author SHA1 Message Date
Sandro 995f9d1c95
Merge pull request #213874 from SuperSandro2000/nginx-zstd
nixos/nginx: add recommendedZstdSettings
2023-03-23 14:11:35 +01:00
Izorkin 5eb5d881a4
nixos/nginx: add defaultMimeTypes option 2023-03-07 19:37:18 +03:00
Sandro Jäckel 5e5a84b193
nixos/nginx: add recommendedZstdSettings 2023-02-22 13:59:53 +01:00
Sandro 6cdec6d1b8
nixos/nginx: add comment about clearing Connection header (#214211) 2023-02-06 23:37:38 +01:00
Nick Cao 4840ca34f4
Merge pull request #213626 from jamesreprise/entries-typo
nginx: fix typo in commonHttpConfig
2023-02-02 09:12:32 +08:00
Sandro 600adcfdcc
Merge pull request #187994 from Izorkin/update-nginx-gzip 2023-01-31 20:41:59 +01:00
Izorkin d178a1d7a1
nixos/nginx: update recommended brotli settings 2023-01-30 23:13:12 +03:00
Izorkin ee7e096c48
nixos/nginx: update recommended gzip settings 2023-01-30 23:03:01 +03:00
Sandro Jäckel 2d3efd3301
nixos/nginx: clear clients Connection headers 2023-01-30 20:25:22 +01:00
James Williams 18ab2268cd
fix: typo (enries -> entries) 2023-01-30 19:08:30 +00:00
Guillaume Girol cb73862665 Revert "nixos/nginx: validate syntax of config file at build time"
This reverts commit a768871934.

This is too fragile, it breaks at least on:
* ssl dh params
* hostnames in proxypass and upstreams are resolved in the sandbox
2023-01-20 20:10:19 +01:00
Guillaume Girol ecb06398e7 Revert "nixos/nginx: disable configuration validation for now"
This reverts commit 7ef58bce9d.
2023-01-20 20:07:47 +01:00
Sandro Jäckel b973513d04
nixos/nginx: cleanup, remove old todo 2023-01-09 22:04:06 +01:00
Kevin Cox c930fd9517
Merge pull request #207874 from kevincox/nginx-unique
nixos/nginx: Deduplicate modules.
2023-01-03 13:07:43 -05:00
Izorkin 4a7d0140a0
nixos/nginx: add recommended brotli settings 2022-12-29 18:14:35 +03:00
Kevin Cox 487b51e77c
nixos/nginx: Deduplicate modules.
In most places in NixOS defining an option multiple places just merges the result together. This is particularly useful if you have two modules that both need an option, you don't want to have problems when they both set it. This makes the nginx `additionalModules` option follow this pattern.
2022-12-26 15:47:51 -05:00
Jörg Thalheim 7ef58bce9d nixos/nginx: disable configuration validation for now
There still seem a lot of breakages not addressed yet:

https://github.com/NixOS/nixpkgs/pull/205561
2022-12-24 09:25:43 +01:00
Guillaume Girol 92dbac3199
Merge pull request #205561 from symphorien/nginx-conf-validate
nixos/nginx: validate config at build time
2022-12-19 19:52:33 +00:00
Vincent Bernat fc39b5ecc8 nginx: make global redirect vhost option accept exceptions
By moving the return into a location directive, one can provide
exceptions by adding locations. This is similar to what the forceSSL
option does.
2022-12-18 12:21:27 +01:00
Guillaume Girol a768871934 nixos/nginx: validate syntax of config file at build time
Shamelessly stolen from nixcloud-webservices:
https://github.com/nixcloud/nixcloud-webservices/blob/master/modules/web/webserver/lib/nginx_check_config.nix

The nixos test testing the behavior of nginx in case of faulty config
would not build with this change (on purpose), so I modified it so that
the failure is not syntactic.
2022-12-10 23:04:57 +01:00
Alexander Bantyev df85dda331
Merge pull request #198314 from Izorkin/update-nginx-cache
nixos/nginx: add proxyCache options
2022-11-27 18:51:09 +04:00
Curtis Jiang f7bed8cd44 nixos/nginx: fix default listen port options 2022-11-15 15:11:52 +00:00
Curtis Jiang 81cd6b06f9 nixos/nginx: add default listen port options 2022-11-15 02:00:03 +00:00
Izorkin c09fd120cc
nixos/nginx: add proxyCache options 2022-11-01 10:07:38 +03:00
Dave Nicponski 1a73877305 Tweak nginx config for Let's Encrypt ACME challenges
Currently, this is using a "URI prefix match", but per nginx docs,

```
[...] the location with the longest matching prefix is selected and remembered. Then regular expressions are checked, in the order of their appearance in the configuration file. The search of regular expressions terminates on the first match, and the corresponding configuration is used. If no match with a regular expression is found then the configuration of the prefix location remembered earlier is used.
```
which means a config like this (from wordpress service) will override that
```
locations = {
          "~ /\\." = {
            priority = 800;
            extraConfig = "deny all;";
          };
};
```
😱
Luckily, from nginx docs:
```
If the longest matching prefix location has the “^~” modifier then regular expressions are not checked.
```

Whew!
2022-10-20 10:59:28 -04:00
pennae ef176dcf7e nixos/*: automatically convert option descriptions
conversions were done using https://github.com/pennae/nix-doc-munge
using (probably) rev f34e145 running

    nix-doc-munge nixos/**/*.nix
    nix-doc-munge --import nixos/**/*.nix

the tool ensures that only changes that could affect the generated
manual *but don't* are committed, other changes require manual review
and are discarded.
2022-08-31 16:32:53 +02:00
pennae c915b915b5 nixos/*: md-convert options with unordered lists
mostly no rendering changes. some lists (like simplelist) don't have an
exact translation to markdown, so we use a comma-separated list of
literals instead.
2022-08-31 16:32:53 +02:00
pennae 6039648c50 nixos/*: automatically convert option docs 2022-08-19 22:40:58 +02:00
pennae b51f8036c2 nixos/*: use properly indented strings for option docs
using regular strings works well for docbook because docbook is not as
whitespace-sensitive as markdown. markdown would render all of these as
code blocks when given the chance.
2022-08-19 22:40:58 +02:00
pennae 087472b1e5 nixos/*: automatically convert option docs 2022-08-06 20:39:12 +02:00
pennae 3aebb4a2be nixos/*: normalize link format
make (almost) all links appear on only a single line, with no
unnecessary whitespace, using double quotes for attributes. this lets us
automatically convert them to markdown easily.

the few remaining links are extremely long link in a gnome module, we'll
come back to those at a later date.
2022-08-03 21:57:46 +02:00
Winter 6c53004840 nixos/nginx: allow recommended proxy settings to be enabled per location 2022-06-12 19:52:35 -04:00
ajs124 30186896ee nixos/nginx: fix SystemCallFilter for openresty 2022-05-30 11:58:28 +02:00
Izorkin e87240e216 nixos/nginx: add extraParameters to http3 protocol 2022-04-11 22:33:12 +02:00
Izorkin c508da303b nixos/nginx: add reuseport option 2022-04-11 22:33:12 +02:00
Izorkin 660a36f173 nixos/nginx: fix http3 configuration 2022-04-11 22:33:12 +02:00
Dominique Martinet b0a04e4105 nginx/logrotate: run logrotate as nginx user 2022-04-01 07:09:27 +09:00
Dominique Martinet e92c05349c nixos/logrotate: convert to freeform
using freeform is the new standard way of using modules and should replace
extraConfig.
In particular, this will allow us to place a condition on mails
2022-04-01 07:09:26 +09:00
Izorkin b672e4dd2c
nginxModules: add option disableIPC
The disableIPC option is required to checking enabled nginxModules
and disable the SystemCallFilter IPC filter.
2022-03-08 14:37:11 +03:00
Dominique Martinet c7618fbd9b nginx: add logrotate rule for nginx logs 2022-02-11 21:07:37 +09:00
Jörg Thalheim fd382c011a
Merge branch 'master' into nginx 2022-01-31 05:44:42 +01:00
Jörg Thalheim 26ea046ed7
Update nixos/modules/services/web-servers/nginx/default.nix 2022-01-31 05:43:53 +01:00
Daniel Olsen ab7e6995ac nixos/nginx: Add defaultListenAddresses option
Lets you specify the default listen address if none are listed in the vhost configuration.

Useful for hosts with more than one ip
2022-01-24 02:20:30 +01:00
Winter b52607f43b nixos/acme: ensure web servers using certs can access them 2022-01-08 15:05:34 -05:00
Naïm Favier ec150abd1a
Revert "nixos/nginx: disable rejectSSL activation when https is disabled"
This reverts commit 2f66ac01e9.
2022-01-02 21:01:29 +01:00
Lucas Savva 377c6bcefc
nixos/acme: Add defaults and inheritDefaults option
Allows configuring many default settings for certificates,
all of which can still be overridden on a per-cert basis.
Some options have been moved into .defaults from security.acme,
namely email, server, validMinDays and renewInterval. These
changes will not break existing configurations thanks to
mkChangedOptionModule.

With this, it is also now possible to configure DNS-01 with
web servers whose virtualHosts utilise enableACME. The only
requirement is you set `acmeRoot = null` for each vhost.

The test suite has been revamped to cover these additions
and also to generally make it easier to maintain. Test config
for apache and nginx has been fully standardised, and it
is now much easier to add a new web server if it follows
the same configuration patterns as those two. I have also
optimised the use of switch-to-configuration which should
speed up testing.
2021-12-26 16:44:10 +00:00
7c6f434c b0f154fd44
Merge pull request #147027 from Izorkin/update-nginx-ktls
nginxMainline: enable ktls support
2021-12-24 10:23:17 +00:00
Jörg Thalheim 8a5777dcf6 nixos/nginx: fix mincore filtering
Mincore is a syscall, not a group.
2021-12-05 12:04:20 +01:00
Izorkin 2f66ac01e9
nixos/nginx: disable rejectSSL activation when https is disabled 2021-11-27 09:39:57 +03:00
Izorkin 7376f4e34f
nixos/nginx: tengine requires allowing @ipc calls 2021-11-27 09:39:57 +03:00