forked from NixOS/nixops
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathapache.nix
53 lines (40 loc) · 1.27 KB
/
apache.nix
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
let
backend =
{ config, pkgs, ... }:
{
services.httpd.enable = true;
services.httpd.adminAddr = "[email protected]";
services.httpd.documentRoot = "${pkgs.valgrind}/share/doc/valgrind/html";
};
in
{
proxy =
{ config, pkgs, nodes, ... }:
{
services.httpd.enable = true;
services.httpd.adminAddr = "[email protected]";
services.httpd.extraModules = ["proxy_balancer"];
services.httpd.extraConfig =
''
ExtendedStatus on
<Location /server-status>
Order deny,allow
Allow from all
SetHandler server-status
</Location>
<Proxy balancer://cluster>
Allow from all
BalancerMember http://${nodes.backend1.config.networking.privateIPv4} retry=0
BalancerMember http://${nodes.backend2.config.networking.privateIPv4} retry=0
</Proxy>
ProxyStatus full
ProxyPass /server-status !
ProxyPass / balancer://cluster/
ProxyPassReverse / balancer://cluster/
# For testing; don't want to wait forever for dead backend servers.
ProxyTimeout 5
'';
};
backend1 = backend;
backend2 = backend;
}