DNS UDP Load Balancer using Nginx Rumi, June 14, 2018March 12, 2023 The plan is to build a DNS- UDP load balancer DNS recursive server (actually forwarding service). The design logic is simple- On client side a public recursive+forwarding DNS IP –> hits the Nginx Load Balancers –> sends traffic to Google Public DNS/IBM Public DNS/Own recursive DNS/OpenDNS. The configuration is quite simple on Nginx Load Balancer, the core configuration content is pretty straight forward: # Load balance UDP-based DNS traffic across two servers stream { upstream dns_upstreams { server 192.168.136.130:53; server 192.168.136.131:53; } server { listen 53 udp; proxy_pass dns_upstreams; proxy_timeout 1s; proxy_responses 1; error_log logs/dns.log; } } However, the above configuration is pretty confusing, as where to put it? Should it be in nginx.conf or under /sites-available/default or /conf.d/default.conf… so many options. But finally the riddle was over, as I had to put the syntax inside, nginx.conf file. So, here goes my final/complete nginx.conf file- # For more information on configuration, see: # * Official English Documentation: http://nginx.org/en/docs/ # * Official Russian Documentation: http://nginx.org/ru/docs/ user nginx; worker_processes auto; error_log /var/log/nginx/error.log; pid /var/run/nginx.pid; # Load dynamic modules. See /usr/share/nginx/README.dynamic. include /usr/share/nginx/modules/*.conf; events { worker_connections 1024; } http { log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main; sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; types_hash_max_size 2048; include /etc/nginx/mime.types; default_type application/octet-stream; # Load modular configuration files from the /etc/nginx/conf.d directory. # See http://nginx.org/en/docs/ngx_core_module.html#include # for more information. ##################################### # Load balance UDP-based DNS traffic across two servers #stream { # upstream dns_upstreams { # server 8.8.8.8:53; # server 9.9.9.9:53; # } # server { # listen 53 udp; # proxy_pass dns_upstreams; # proxy_timeout 1s; # proxy_responses 1; # error_log logs/dns.log; # } #} ##################################3## include /etc/nginx/conf.d/*.conf; } stream { upstream dns_upstreams { server 8.8.8.8:53; server 9.9.9.9:53; } server { listen 53 udp; proxy_pass dns_upstreams; proxy_timeout 1s; proxy_responses 1; error_log /var/log/dns.log; } } // Update on CentOS You need to install stream binary in order to make this work. yum install nginx-mod-stream Src: Announcing UDP Load Balancing in NGINX and NGINX Plus Related Networking Load BalancenginxUDP Load Balance
Importing Legacy Windows XP or Windows 2003 from Virtualbox to Proxmox December 28, 2023 Problem Statement: I have an old Windows 2003 32 bit server running in Virtualbox. Since Virtualbox is under decommissioned, it is intended to be migrated to Proxmox VE Before Migration or export of VM from Virtualbox, following .reg file is required to be installed on Windows 2003 server to avoid… Read More
Installation Bashtop an upgraded CLI system reporting interface from Top or Htop August 15, 2020 Install Bashtop Resource Monitor on Ubuntu You can use PPA repository for Ubuntu Linux installations: sudo add-apt-repository ppa:bashtop-monitor/bashtop sudo apt update sudo apt install bashtop Install Bashtop Resource Monitor on Debian For Debian and its based distributions, used the commands below: Related Read More
Install Munin on CentOS 5 January 20, 2013 1 Preliminary Note Our system's hostname is server1.example.com, and we have a web site www.example.com on it with the document root /var/www/www.example.com/web. 2 Enable The RPMforge Repository On CentOS 5.2, munin and monit are not available in the default CentOS repositories. Fortunately we can install them from the RPMforge repository…. Read More