log_format proxy '$remote_addr [$time_local] ' '$protocol $status $bytes_sent $bytes_received ' '$session_time "$upstream_addr" ' '"$upstream_bytes_sent" "$upstream_bytes_received" "$upstream_connect_time"'; access_log /var/log/nginx/streams.log proxy buffer=32k flush=1m; upstream ejabberd_c2s { hash $remote_addr consistent; <% @ejabberd_hosts.each do |ip_address| %> server <%= ip_address %>:5222; <% end %> } upstream ejabberd_c2s_tls { hash $remote_addr consistent; <% @ejabberd_hosts.each do |ip_address| %> server <%= ip_address %>:5223; <% end %> } upstream ejabberd_s2s { hash $remote_addr consistent; <% @ejabberd_hosts.each do |ip_address| %> server <%= ip_address %>:5269; <% end %> } upstream ejabberd_https { hash $remote_addr consistent; <% @ejabberd_hosts.each do |ip_address| %> server <%= ip_address %>:5443; <% end %> } upstream ejabberd_stun_turn { hash $remote_addr consistent; <% @ejabberd_hosts.each do |ip_address| %> server <%= ip_address %>:<%= @stun_turn_port %>; <% end %> } upstream ejabberd_turn { hash $remote_addr consistent; <% @ejabberd_hosts.each do |ip_address| %> <% (@turn_min_port..@turn_max_port).each do |port| %> server <%= "#{ip_address}:#{port.to_s}" %>; <% end %> <% end %> } server { listen 5222; proxy_pass ejabberd_c2s; } server { listen 5223; proxy_pass ejabberd_c2s; } server { listen 5269; proxy_pass ejabberd_s2s; } server { listen 5443; proxy_pass ejabberd_https; } server { listen <%= @stun_turn_port %> udp; proxy_pass ejabberd_stun_turn; } server { listen <%= "#{@turn_min_port}-#{@turn_max_port}" %> udp; proxy_pass 10.1.1.113:$server_port; #proxy_pass ejabberd_turn; }