На роутере такой широкий спектр контента блокируется не особо надёжно - куда конструктивнее установить ПО на конечных устройствах.
"Безопасные" DNSы на роутере, допустим, что-то заблокируют. Но с мессенджерами это вряд ли поможет, т. к. пул их адресов может меняться - соответственно, понадобится какой-то механизм актуализации списков.
Тот же самый, который используется для HTTPS, с точки зрения веб-сервера разницы нет. Как составить цепочку - обычно написано на сайте удостоверяющего центра.
То, что вы хотите - наиболее распространённый вариант настройки нгинкса, он выдаётся примерно по каждой первой ссылке в интернете. Вам нужно сделать два серверных блока с соответствующими server_name`ами и локейшенами с proxy_pass`ами на нужные порты.
Вы пытаетесь поиспользовать map в качестве if`а - это архитектурно довольно неизящно. Просто разделить обработку доменов на два серверных блока вам по какой-то причине проблематично?