map $http_upgrade $connection_upgrade { default upgrade; '' close; } upstream esphome_backend { server unix:/srv/homeassistant/run/esphome_dashboard.sock; keepalive 32; } server { listen 443 ssl http2; listen [::]:443 ssl http2; server_name esphome.local.eax.app; # SSL ssl_certificate /etc/letsencrypt/live/local.eax.app/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/local.eax.app/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/local.eax.app/chain.pem; # security include nginxconfig.io/security.conf; # restrict methods if ($request_method !~ ^(GET|POST|HEAD|CONNECT|OPTIONS|TRACE)$) { return '405'; } # logging access_log /var/log/nginx/esphome.local.eax.app.access.log; error_log /var/log/nginx/esphome.local.eax.app.error.log warn; location / { proxy_pass http://esphome_backend/; proxy_set_header Host $host; proxy_redirect http:// https://; proxy_http_version 1.1; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $connection_upgrade; } location /ace { proxy_pass http://esphome_backend/ace; proxy_set_header Host $host; proxy_http_version 1.1; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $connection_upgrade; } # additional config #include nginxconfig.io/general.conf; } # HTTP redirect server { listen 80; listen [::]:80; server_name esphome.local.eax.app; include nginxconfig.io/letsencrypt.conf; location / { return 301 https://esphome.local.eax.app$request_uri; } }