netbird | pfsync | haproxy | nginx | client
not thoroughly tested as we use haproxy instead
the trick is to use grpc_pass
for mgmt and signal
not sure we need all those headers as for dashboard and api
server { listen 80; listen [::]:80; server_name netbird.demo.nethence.com; # we need to define location otherwise takes over .well-known/ location / { return 301 https://$host$request_uri; } # deal with http-01 challenges (no http2 there) location ^~ /.well-known/acme-challenge/ { default_type "text/plain"; # trailing slash matters alias /var/www/dehydrated/; } } server { listen 443 ssl; listen [::]:443 ssl; server_name netbird.demo.nethence.com; http2 on; access_log /var/log/nginx/netbird.access.log json; error_log /var/log/nginx/netbird.error.log warn; # http-01 sample ssl_certificate /etc/dehydrated/certs/netbird.demo.nethence.com/fullchain.pem; ssl_certificate_key /etc/dehydrated/certs/netbird.demo.nethence.com/privkey.pem; ssl_certificate /etc/dehydrated/certs/ECC/netbird.demo.nethence.com/fullchain.pem; ssl_certificate_key /etc/dehydrated/certs/ECC/netbird.demo.nethence.com/privkey.pem; location / { proxy_pass http://127.0.0.1:9080; proxy_set_header Connection $http_connection; proxy_set_header Upgrade $http_upgrade; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } location /api { proxy_pass http://127.0.0.1:9444; proxy_set_header Connection $http_connection; proxy_set_header Upgrade $http_upgrade; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } location /management.ManagementService/ { grpc_pass grpcs://127.0.0.1:9444; } location /signalexchange.SignalExchange/ { grpc_pass grpcs://127.0.0.1:9443; } ssi off; autoindex off; autoindex_exact_size off; location = /robots.txt { access_log off; log_not_found off; } location = /favicon.ico { access_log off; log_not_found off; } location ~ /apple-touch-icon { access_log off; log_not_found off; } }
https://github.com/netbirdio/netbird/issues/536