Migrate ejabberd UDP streams to openresty

And remove the other streams in the process, in favor of running haproxy
on all LBs.
This commit is contained in:
Râu Cao 2023-07-30 12:36:14 +02:00
parent 438ee4ace0
commit 68b56789c5
Signed by: raucao
GPG Key ID: 15E65F399D084BA9
4 changed files with 6 additions and 70 deletions

View File

@ -45,6 +45,7 @@
"kosmos_assets::nginx_site", "kosmos_assets::nginx_site",
"kosmos_discourse::nginx", "kosmos_discourse::nginx",
"kosmos_drone::nginx", "kosmos_drone::nginx",
"kosmos-ejabberd::nginx",
"kosmos_garage::nginx_web", "kosmos_garage::nginx_web",
"kosmos_gitea::nginx", "kosmos_gitea::nginx",
"kosmos_gitea::nginx_ssh", "kosmos_gitea::nginx_ssh",

View File

@ -20,7 +20,6 @@ development_run_list = %w(
default_run_list = %w( default_run_list = %w(
role[openresty] role[openresty]
kosmos-ejabberd::nginx
) )
production_run_list = %w( production_run_list = %w(
@ -29,6 +28,7 @@ production_run_list = %w(
kosmos_assets::nginx_site kosmos_assets::nginx_site
kosmos_discourse::nginx kosmos_discourse::nginx
kosmos_drone::nginx kosmos_drone::nginx
kosmos-ejabberd::nginx
kosmos_garage::nginx_web kosmos_garage::nginx_web
kosmos_gitea::nginx kosmos_gitea::nginx
kosmos_gitea::nginx_ssh kosmos_gitea::nginx_ssh

View File

@ -17,28 +17,15 @@ rescue IPAddr::InvalidAddressError
next next
end end
template "#{node['nginx']['dir']}/streams-available/ejabberd" do openresty_stream "ejabberd" do
source "nginx_conf_streams.erb" template "nginx_conf_streams.erb"
owner 'www-data'
mode 0640
# variables ejabberd_hosts: ejabberd_hosts
variables ejabberd_hosts: ["10.1.1.113"], variables ejabberd_hosts: ["10.1.1.113"],
stun_turn_port: node["kosmos-ejabberd"]["stun_turn_port"], stun_turn_port: node["kosmos-ejabberd"]["stun_turn_port"],
turn_min_port: node["kosmos-ejabberd"]["turn_min_port"], turn_min_port: node["kosmos-ejabberd"]["turn_min_port"],
turn_max_port: node["kosmos-ejabberd"]["turn_max_port"] turn_max_port: node["kosmos-ejabberd"]["turn_max_port"]
notifies :reload, 'service[nginx]', :delayed
end
nginx_stream "ejabberd" do
action :enable action :enable
end end
firewall_rule "ejabberd" do
port [5222, 5223, 5269, 5443]
protocol :tcp
command :allow
end
firewall_rule 'ejabberd_stun_turn' do firewall_rule 'ejabberd_stun_turn' do
port node["kosmos-ejabberd"]["stun_turn_port"] port node["kosmos-ejabberd"]["stun_turn_port"]
protocol :udp protocol :udp

View File

@ -5,34 +5,6 @@ log_format proxy '$remote_addr [$time_local] '
access_log /var/log/nginx/streams.log proxy buffer=32k flush=1m; 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 { upstream ejabberd_stun_turn {
hash $remote_addr consistent; hash $remote_addr consistent;
<% @ejabberd_hosts.each do |ip_address| %> <% @ejabberd_hosts.each do |ip_address| %>
@ -50,36 +22,12 @@ upstream ejabberd_turn {
} }
server { server {
listen 5222; listen <%= @stun_turn_port %> udp;
proxy_protocol on;
proxy_pass ejabberd_c2s;
}
server {
listen 5223;
proxy_protocol on;
proxy_pass ejabberd_c2s;
}
server {
listen 5269;
proxy_protocol on;
proxy_pass ejabberd_s2s;
}
server {
listen 5443;
proxy_protocol on;
proxy_pass ejabberd_https;
}
server {
listen <%= @stun_turn_port %> udp;
proxy_pass ejabberd_stun_turn; proxy_pass ejabberd_stun_turn;
} }
server { server {
listen <%= "#{@turn_min_port}-#{@turn_max_port}" %> udp; listen <%= "#{@turn_min_port}-#{@turn_max_port}" %> udp;
proxy_pass 10.1.1.113:$server_port; proxy_pass 10.1.1.113:$server_port;
#proxy_pass ejabberd_turn; #proxy_pass ejabberd_turn;
} }