diff options
author | Franz Pletz <fpletz@fnordicwalking.de> | 2017-02-11 04:11:35 +0100 |
---|---|---|
committer | Robin Gloster <mail@glob.in> | 2017-08-30 21:01:52 +0200 |
commit | 65c2203ffcedcf4817c590fe82c213dd45602d47 (patch) | |
tree | 84b5ba90a7a5b5fcd0d0816aff2c981da7083696 /nixos/modules/services | |
parent | 530282eebec47b8e4afc93de8caf607c621fd6cc (diff) | |
download | nixlib-65c2203ffcedcf4817c590fe82c213dd45602d47.tar nixlib-65c2203ffcedcf4817c590fe82c213dd45602d47.tar.gz nixlib-65c2203ffcedcf4817c590fe82c213dd45602d47.tar.bz2 nixlib-65c2203ffcedcf4817c590fe82c213dd45602d47.tar.lz nixlib-65c2203ffcedcf4817c590fe82c213dd45602d47.tar.xz nixlib-65c2203ffcedcf4817c590fe82c213dd45602d47.tar.zst nixlib-65c2203ffcedcf4817c590fe82c213dd45602d47.zip |
nginx module: add option for proxying websocket requests
Diffstat (limited to 'nixos/modules/services')
-rw-r--r-- | nixos/modules/services/web-servers/nginx/default.nix | 10 | ||||
-rw-r--r-- | nixos/modules/services/web-servers/nginx/location-options.nix | 9 |
2 files changed, 19 insertions, 0 deletions
diff --git a/nixos/modules/services/web-servers/nginx/default.nix b/nixos/modules/services/web-servers/nginx/default.nix index 1aa8000502f5..e71a9e1885a8 100644 --- a/nixos/modules/services/web-servers/nginx/default.nix +++ b/nixos/modules/services/web-servers/nginx/default.nix @@ -92,6 +92,11 @@ let include ${recommendedProxyConfig}; ''} + # $connection_upgrade is used for websocket proxying + map $http_upgrade $connection_upgrade { + default upgrade; + ''' close; + } client_max_body_size ${cfg.clientMaxBodySize}; server_tokens ${if cfg.serverTokens then "on" else "off"}; @@ -213,6 +218,11 @@ let proxy_pass ${config.proxyPass}; ${optionalString cfg.recommendedProxySettings "include ${recommendedProxyConfig};"} ''} + ${optionalString config.proxyWebsockets '' + proxy_http_version 1.1; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection $connection_upgrade; + ''} ${optionalString (config.index != null) "index ${config.index};"} ${optionalString (config.tryFiles != null) "try_files ${config.tryFiles};"} ${optionalString (config.root != null) "root ${config.root};"} diff --git a/nixos/modules/services/web-servers/nginx/location-options.nix b/nixos/modules/services/web-servers/nginx/location-options.nix index d6f57404f822..4c772734a749 100644 --- a/nixos/modules/services/web-servers/nginx/location-options.nix +++ b/nixos/modules/services/web-servers/nginx/location-options.nix @@ -19,6 +19,15 @@ with lib; ''; }; + proxyWebsockets = mkOption { + type = types.bool; + default = false; + example = true; + description = '' + Whether to supporty proxying websocket connections with HTTP/1.1. + ''; + }; + index = mkOption { type = types.nullOr types.str; default = null; |