1# verifies:
2# 1. nginx generates config file with shared http context definitions above
3# generated virtual hosts config.
4
5import ./make-test.nix ({ pkgs, ...} : {
6 name = "nginx";
7 meta = with pkgs.stdenv.lib.maintainers; {
8 maintainers = [ mbbx6spp ];
9 };
10
11 nodes = {
12 webserver =
13 { ... }:
14 { services.nginx.enable = true;
15 services.nginx.commonHttpConfig = ''
16 log_format ceeformat '@cee: {"status":"$status",'
17 '"request_time":$request_time,'
18 '"upstream_response_time":$upstream_response_time,'
19 '"pipe":"$pipe","bytes_sent":$bytes_sent,'
20 '"connection":"$connection",'
21 '"remote_addr":"$remote_addr",'
22 '"host":"$host",'
23 '"timestamp":"$time_iso8601",'
24 '"request":"$request",'
25 '"http_referer":"$http_referer",'
26 '"upstream_addr":"$upstream_addr"}';
27 '';
28 services.nginx.virtualHosts."0.my.test" = {
29 extraConfig = ''
30 access_log syslog:server=unix:/dev/log,facility=user,tag=mytag,severity=info ceeformat;
31 '';
32 };
33 };
34 };
35
36 testScript = ''
37 startAll;
38
39 $webserver->waitForUnit("nginx");
40 $webserver->waitForOpenPort("80");
41 '';
42})