]> git.openstreetmap.org Git - chef.git/blobdiff - cookbooks/nginx/templates/default/nginx.conf.erb
nginx: enable TLS 1.3
[chef.git] / cookbooks / nginx / templates / default / nginx.conf.erb
index 7bf95a7fbe351b04bce8833373dc10e3a02e2662..e5969ce45ce3acb67f226c4f3a2ab5341851704c 100644 (file)
@@ -3,14 +3,14 @@
 user  www-data;
 worker_processes auto;
 worker_cpu_affinity auto;
-worker_rlimit_nofile 65536;
+worker_rlimit_nofile 98304;
 
 error_log  /var/log/nginx/error.log warn;
 pid        /var/run/nginx.pid;
 
 
 events {
-    worker_connections  1024;
+    worker_connections  8192;
 }
 
 http {
@@ -18,6 +18,7 @@ http {
     default_type  application/octet-stream;
 
     server_names_hash_bucket_size 128;
+    map_hash_bucket_size 128;
 
 <% if node[:nginx][:access_log] -%>
     log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
@@ -25,18 +26,26 @@ http {
                       '"$http_user_agent" "$http_x_forwarded_for"';
 
     access_log  <%= node[:nginx][:access_log] %>  main  buffer=32k flush=1m;
+<% else -%>
+    access_log  off;
 <% end -%>
 
-    keepalive_timeout  65;
+    keepalive_timeout  30;
 
     server_tokens off;
 
-    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
-    ssl_ciphers <%= node[:ssl][:ciphers] -%>;
+    ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
+    ssl_ciphers <%= node[:ssl][:openssl_ciphers] -%>;
     ssl_prefer_server_ciphers on;
     ssl_session_cache shared:SSL:50m;
     ssl_session_timeout 30m;
+
     ssl_stapling on;
+
+    # Validate the stapling response is signed by a trusted certificate
+    ssl_stapling_verify on;
+    ssl_trusted_certificate /etc/ssl/certs/ca-certificates.crt;
+
     ssl_dhparam /etc/ssl/certs/dhparam.pem;
     resolver <%= @resolvers.join(" ") %>;
     resolver_timeout 5s;