about summary refs log tree commit diff
path: root/nginx/server.conf
diff options
context:
space:
mode:
Diffstat (limited to 'nginx/server.conf')
-rw-r--r--nginx/server.conf49
1 files changed, 49 insertions, 0 deletions
diff --git a/nginx/server.conf b/nginx/server.conf
new file mode 100644
index 000000000000..965e36259dad
--- /dev/null
+++ b/nginx/server.conf
@@ -0,0 +1,49 @@
+# Logstash log format
+log_format logstash '$http_host '
+'$remote_addr [$time_local] '
+'"$request" $status $body_bytes_sent '
+'"$http_referer" "$http_user_agent" '
+'$request_time '
+'$upstream_response_time';
+
+# Modern SSL config
+ssl_protocols TLSv1.2;
+ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256';
+ssl_prefer_server_ciphers on;
+ssl_session_timeout 1d;
+ssl_session_cache shared:SSL:50m;
+ssl_session_tickets off;
+ssl_dhparam /etc/nginx/ssl/dhparam/tls.dhparam;
+
+# Default tazj.in config (certs need to be overriden for other stuff, like oslo.pub)
+ssl_certificate /etc/nginx/ssl/tazj.in/tls.key;
+ssl_certificate_key /etc/nginx/ssl/tazj.in/tls.crt;
+
+# HSTS (ngx_http_headers_module is required) (15768000 seconds = 6 months)
+add_header Strict-Transport-Security max-age=15768000;
+
+server {
+    listen       80;
+    server_name  *.tazj.in tazj.in;
+    access_log   /var/log/nginx/tls_redirect.log  logstash;
+    return       301 https://$server_name$request_uri;
+}
+
+# Simple IP echo thing
+server {
+    listen 80;
+    server_name ip.tazj.in;
+    access_log off;
+    add_header "Content-Type" "text/plain";
+    return 200 "$remote_addr\n";
+}
+
+# TazBlog
+server {
+    listen      443 ssl http2 default_server;
+    server_name www.tazj.in tazj.in default;
+
+    location / {
+        proxy_pass http://tazblog-priv.default.svc.cluster.local/;
+    }
+}