dotnet: improve language coverage of passthru.tests for dotnet sdks (#370789)
[NixPkgs.git] / nixos / modules / services / web-servers / nginx / location-options.nix
blobda55dc92f596e9430d90030201af19b11f520c92
1 # This file defines the options that can be used both for the Nginx
2 # main server configuration, and for the virtual hosts.  (The latter
3 # has additional options that affect the web server as a whole, like
4 # the user/group to run under.)
6 { lib, config }:
8 with lib;
11   options = {
12     basicAuth = mkOption {
13       type = types.attrsOf types.str;
14       default = {};
15       example = literalExpression ''
16         {
17           user = "password";
18         };
19       '';
20       description = ''
21         Basic Auth protection for a vhost.
23         WARNING: This is implemented to store the password in plain text in the
24         Nix store.
25       '';
26     };
28     basicAuthFile = mkOption {
29       type = types.nullOr types.path;
30       default = null;
31       description = ''
32         Basic Auth password file for a vhost.
33         Can be created by running {command}`nix-shell --packages apacheHttpd --run 'htpasswd -B -c FILENAME USERNAME'`.
34       '';
35     };
37     proxyPass = mkOption {
38       type = types.nullOr types.str;
39       default = null;
40       example = "http://www.example.org/";
41       description = ''
42         Adds proxy_pass directive and sets recommended proxy headers if
43         recommendedProxySettings is enabled.
44       '';
45     };
47     proxyWebsockets = mkOption {
48       type = types.bool;
49       default = false;
50       example = true;
51       description = ''
52         Whether to support proxying websocket connections with HTTP/1.1.
53       '';
54     };
56     index = mkOption {
57       type = types.nullOr types.str;
58       default = null;
59       example = "index.php index.html";
60       description = ''
61         Adds index directive.
62       '';
63     };
65     tryFiles = mkOption {
66       type = types.nullOr types.str;
67       default = null;
68       example = "$uri =404";
69       description = ''
70         Adds try_files directive.
71       '';
72     };
74     root = mkOption {
75       type = types.nullOr types.path;
76       default = null;
77       example = "/your/root/directory";
78       description = ''
79         Root directory for requests.
80       '';
81     };
83     alias = mkOption {
84       type = types.nullOr types.path;
85       default = null;
86       example = "/your/alias/directory";
87       description = ''
88         Alias directory for requests.
89       '';
90     };
92     return = mkOption {
93       type = with types; nullOr (oneOf [ str int ]);
94       default = null;
95       example = "301 http://example.com$request_uri";
96       description = ''
97         Adds a return directive, for e.g. redirections.
98       '';
99     };
101     fastcgiParams = mkOption {
102       type = types.attrsOf (types.either types.str types.path);
103       default = {};
104       description = ''
105         FastCGI parameters to override.  Unlike in the Nginx
106         configuration file, overriding only some default parameters
107         won't unset the default values for other parameters.
108       '';
109     };
111     extraConfig = mkOption {
112       type = types.lines;
113       default = "";
114       description = ''
115         These lines go to the end of the location verbatim.
116       '';
117     };
119     priority = mkOption {
120       type = types.int;
121       default = 1000;
122       description = ''
123         Order of this location block in relation to the others in the vhost.
124         The semantics are the same as with `lib.mkOrder`. Smaller values have
125         a greater priority.
126       '';
127     };
129     recommendedProxySettings = mkOption {
130       type = types.bool;
131       default = config.services.nginx.recommendedProxySettings;
132       defaultText = literalExpression "config.services.nginx.recommendedProxySettings";
133       description = ''
134         Enable recommended proxy settings.
135       '';
136     };
137   };