Skip to content

Commit 5ac8764

Browse files
authored
Add implementation of ngx_http_sub_module config (#216)
1 parent 9fba827 commit 5ac8764

File tree

4 files changed

+134
-2
lines changed

4 files changed

+134
-2
lines changed

defaults/main/template.yml

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,11 @@ nginx_main_template:
4141
keyval: false
4242
# server_tokens: "off"
4343
http_global_autoindex: false
44+
sub_filter:
45+
# sub_filters: []
46+
last_modified: "off"
47+
once: "on"
48+
types: "text/html"
4449
# http_custom_options: []
4550
stream_enable: false
4651
# stream_custom_options: []
@@ -109,6 +114,11 @@ nginx_http_template:
109114
trusted_cert: /etc/ssl/certs/root_CA_cert_plus_intermediates.crt
110115
stapling: true
111116
stapling_verify: true
117+
sub_filter:
118+
# sub_filters: []
119+
last_modified: "off"
120+
once: "on"
121+
types: "text/html"
112122
# custom_options: []
113123
web_server:
114124
locations:
@@ -140,6 +150,11 @@ nginx_http_template:
140150
# return302:
141151
# code: 302
142152
# url: https://sso.somehost.local/?url=https://$http_host$request_uri
153+
sub_filter:
154+
# sub_filters: []
155+
last_modified: "off"
156+
once: "on"
157+
types: "text/html"
143158
# custom_options: []
144159
http_demo_conf: false
145160
reverse_proxy:
@@ -236,6 +251,11 @@ nginx_http_template:
236251
# return302:
237252
# code: 302
238253
# url: https://sso.somehost.local/?url=https://$http_host$request_uri
254+
sub_filter:
255+
# sub_filters: []
256+
last_modified: "off"
257+
once: "on"
258+
types: "text/html"
239259
# custom_options: []
240260
health_check_plus: false
241261
returns:

molecule/common/playbook_template.yml

Lines changed: 58 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,11 @@
3333
rate_limit: false
3434
keyval: false
3535
server_tokens: "off"
36+
sub_filter:
37+
# sub_filters: []
38+
last_modified: "off"
39+
once: "on"
40+
types: "text/html"
3641
stream_enable: true
3742
http_global_autoindex: false
3843

@@ -60,6 +65,12 @@
6065
name: Strict-Transport-Security
6166
value: max-age=15768000; includeSubDomains
6267
always: true
68+
sub_filter:
69+
# sub_filters: []
70+
last_modified: "off"
71+
once: "on"
72+
types: "text/html"
73+
# custom_options: []
6374
reverse_proxy:
6475
locations:
6576
frontend:
@@ -109,6 +120,11 @@
109120
value: $scheme
110121
proxy_buffering: false
111122
client_max_body_size: 5m
123+
sub_filter:
124+
# sub_filters: []
125+
last_modified: "off"
126+
once: "on"
127+
types: "text/html"
112128
backend:
113129
location: /backend
114130
proxy_pass: http://backend_servers/
@@ -212,6 +228,21 @@
212228
server_name: localhost
213229
error_page: /usr/share/nginx/html
214230
autoindex: false
231+
sub_filter:
232+
sub_filters:
233+
- "'server_hostname' '$hostname'"
234+
- "'server_address' '$server_addr:$server_port'"
235+
- "'server_url' '$request_uri'"
236+
- "'remote_addr' '$remote_addr:$remote_port'"
237+
- "'server_date' '$time_local'"
238+
- "'client_browser' '$http_user_agent'"
239+
- "'request_id' '$request_id'"
240+
- "'nginx_version' '$nginx_version'"
241+
- "'document_root' '$document_root'"
242+
- "'proxied_for_ip' '$http_x_forwarded_for'"
243+
last_modified: "off"
244+
once: "off"
245+
types: "text/html"
215246
web_server:
216247
locations:
217248
frontend_site:
@@ -221,7 +252,12 @@
221252
html_file_location: /usr/share/nginx/html
222253
html_file_name: frontend_index.html
223254
autoindex: false
224-
http_demo_conf: true
255+
sub_filter:
256+
# sub_filters: []
257+
last_modified: "off"
258+
once: "off"
259+
types: "text/html"
260+
http_demo_conf: false
225261
backend:
226262
template_file: http/default.conf.j2
227263
conf_file_name: backend_default.conf
@@ -235,6 +271,21 @@
235271
server_name: localhost
236272
error_page: /usr/share/nginx/html
237273
autoindex: false
274+
sub_filter:
275+
sub_filters:
276+
- "'server_hostname' '$hostname'"
277+
- "'server_address' '$server_addr:$server_port'"
278+
- "'server_url' '$request_uri'"
279+
- "'remote_addr' '$remote_addr:$remote_port'"
280+
- "'server_date' '$time_local'"
281+
- "'client_browser' '$http_user_agent'"
282+
- "'request_id' '$request_id'"
283+
- "'nginx_version' '$nginx_version'"
284+
- "'document_root' '$document_root'"
285+
- "'proxied_for_ip' '$http_x_forwarded_for'"
286+
last_modified: "off"
287+
once: "off"
288+
types: "text/html"
238289
web_server:
239290
locations:
240291
backend_site:
@@ -252,7 +303,12 @@
252303
- fastcgi_index index.php
253304
- include fastcgi_params
254305
- fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name
255-
http_demo_conf: true
306+
sub_filter:
307+
# sub_filters: []
308+
last_modified: "off"
309+
once: "off"
310+
types: "text/html"
311+
http_demo_conf: false
256312
nginx_html_demo_template_enable: true
257313
nginx_html_demo_template:
258314
frontend:

templates/http/default.conf.j2

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -159,6 +159,20 @@ server {
159159
{% if item.value.servers[server].client_max_body_size is defined and item.value.servers[server].client_max_body_size %}
160160
client_max_body_size {{ item.value.servers[server].client_max_body_size }};
161161
{% endif %}
162+
{% if item.value.servers[server].sub_filter.sub_filters is defined and item.value.servers[server].sub_filter.sub_filters | length %}
163+
{% for sub_filter in item.value.servers[server].sub_filter.sub_filters %}
164+
sub_filter {{ sub_filter }};
165+
{% endfor %}
166+
{% endif %}
167+
{% if item.value.servers[server].sub_filter.last_modified is defined %}
168+
sub_filter_last_modified {{ item.value.servers[server].sub_filter.last_modified | ternary("on", "off") }};
169+
{% endif %}
170+
{% if item.value.servers[server].sub_filter.once is defined %}
171+
sub_filter_once {{ item.value.servers[server].sub_filter.once | ternary("on", "off") }};
172+
{% endif %}
173+
{% if item.value.servers[server].sub_filter.types is defined and item.value.servers[server].sub_filter.types %}
174+
sub_filter_types {{ item.value.servers[server].sub_filter.types }};
175+
{% endif %}
162176
{% if item.value.servers[server].custom_options is defined and item.value.servers[server].custom_options | length %}
163177
{% for inline_option in item.value.servers[server].custom_options %}
164178
{{ inline_option }};
@@ -334,6 +348,20 @@ server {
334348
{% if item.value.servers[server].reverse_proxy.locations[location].proxy_buffering is defined %}
335349
proxy_buffering {{ item.value.servers[server].reverse_proxy.locations[location].proxy_buffering | ternary("on", "off") }};
336350
{% endif %}
351+
{% if item.value.servers[server].reverse_proxy.locations[location].sub_filter.sub_filters is defined and item.value.servers[server].reverse_proxy.locations[location].sub_filter.sub_filters | length %}
352+
{% for sub_filter in item.value.servers[server].reverse_proxy.locations[location].sub_filter.sub_filters %}
353+
sub_filter {{ sub_filter }};
354+
{% endfor %}
355+
{% endif %}
356+
{% if item.value.servers[server].reverse_proxy.locations[location].sub_filter.last_modified is defined %}
357+
sub_filter_last_modified {{ item.value.servers[server].reverse_proxy.locations[location].sub_filter.last_modified | ternary("on", "off") }};
358+
{% endif %}
359+
{% if item.value.servers[server].reverse_proxy.locations[location].sub_filter.once is defined %}
360+
sub_filter_once {{ item.value.servers[server].reverse_proxy.locations[location].sub_filter.once | ternary("on", "off") }};
361+
{% endif %}
362+
{% if item.value.servers[server].reverse_proxy.locations[location].sub_filter.types is defined and item.value.servers[server].reverse_proxy.locations[location].sub_filter.types %}
363+
sub_filter_types {{ item.value.servers[server].reverse_proxy.locations[location].sub_filter.types }};
364+
{% endif %}
337365
{% if item.value.servers[server].reverse_proxy.locations[location].custom_options is defined and item.value.servers[server].reverse_proxy.locations[location].custom_options | length %}
338366
{% for inline_option in item.value.servers[server].reverse_proxy.locations[location].custom_options %}
339367
{{ inline_option }};
@@ -403,6 +431,20 @@ server {
403431
{% if item.value.servers[server].web_server.locations[location].auth_request_set is defined %}
404432
auth_request_set {{ item.value.servers[server].web_server.locations[location].auth_request_set.name }} {{ item.value.servers[server].web_server.locations[location].auth_request_set.value }};
405433
{% endif %}
434+
{% if item.value.servers[server].web_server.locations[location].sub_filter.sub_filters is defined and item.value.servers[server].web_server.locations[location].sub_filter.sub_filters | length %}
435+
{% for sub_filter in item.value.servers[server].web_server.locations[location].sub_filter.sub_filters %}
436+
sub_filter {{ sub_filter }};
437+
{% endfor %}
438+
{% endif %}
439+
{% if item.value.servers[server].web_server.locations[location].sub_filter.last_modified is defined %}
440+
sub_filter_last_modified {{ item.value.servers[server].web_server.locations[location].sub_filter.last_modified | ternary("on", "off") }};
441+
{% endif %}
442+
{% if item.value.servers[server].web_server.locations[location].sub_filter.once is defined %}
443+
sub_filter_once {{ item.value.servers[server].web_server.locations[location].sub_filter.once | ternary("on", "off") }};
444+
{% endif %}
445+
{% if item.value.servers[server].web_server.locations[location].sub_filter.types is defined and item.value.servers[server].web_server.locations[location].sub_filter.types %}
446+
sub_filter_types {{ item.value.servers[server].web_server.locations[location].sub_filter.types }};
447+
{% endif %}
406448

407449
}
408450
{% endfor %}

templates/nginx.conf.j2

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,20 @@ http {
9999
{% if nginx_main_template.http_global_autoindex | default(false) %}
100100
autoindex on;
101101
{% endif %}
102+
{% if nginx_main_template.sub_filter.sub_filters is defined and nginx_main_template.sub_filter.sub_filters | length %}
103+
{% for sub_filter in nginx_main_template.sub_filter.sub_filters %}
104+
sub_filter {{ sub_filter }};
105+
{% endfor %}
106+
{% endif %}
107+
{% if nginx_main_template.sub_filter.last_modified is defined %}
108+
sub_filter_last_modified {{ nginx_main_template.sub_filter.last_modified | ternary("on", "off") }};
109+
{% endif %}
110+
{% if nginx_main_template.sub_filter.once is defined %}
111+
sub_filter_once {{ nginx_main_template.sub_filter.once | ternary("on", "off") }};
112+
{% endif %}
113+
{% if nginx_main_template.sub_filter.types is defined and nginx_main_template.sub_filter.types %}
114+
sub_filter_types {{ nginx_main_template.sub_filter.types }};
115+
{% endif %}
102116
{% if nginx_main_template.http_custom_options is defined and nginx_main_template.http_custom_options | length %}
103117
{% for inline_option in nginx_main_template.http_custom_options %}
104118
{{ inline_option }};

0 commit comments

Comments
 (0)