Преглед изворни кода

Merge pull request #2842 from aptiko/issue2721-traefik-additional-jvb

Proxy additional JVBs through traefik (fixes #2721)
pull/2845/head
Slavi Pantaleev пре 2 година
committed by GitHub
родитељ
комит
bd830053ef
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
4 измењених фајлова са 35 додато и 24 уклоњено
  1. +0
    -12
      docs/configuring-playbook-jitsi.md
  2. +32
    -0
      group_vars/matrix_servers
  3. +0
    -9
      roles/custom/matrix-nginx-proxy/defaults/main.yml
  4. +3
    -3
      roles/custom/matrix-nginx-proxy/templates/nginx/conf.d/matrix-jitsi.conf.j2

+ 0
- 12
docs/configuring-playbook-jitsi.md Прегледај датотеку

@@ -218,18 +218,6 @@ jitsi_prosody_container_jvb_host_bind_port: 5222


(The default is empty; if it's set then docker forwards the port.) (The default is empty; if it's set then docker forwards the port.)


The nginx configuration will also need to be updated in order to deal with the additional JVB servers. This is achieved via its own configuration variable
`matrix_nginx_proxy_proxy_jitsi_additional_jvbs`, which contains a dictionary of server ids to ip addresses.

For example,

``` yaml
matrix_nginx_proxy_proxy_jitsi_additional_jvbs:
jvb-2: 192.168.0.2
jvb-3: 192.168.0.3
```


Applied together this will allow you to provision extra JVB instances which will register themselves with the prosody service and be available for jicofo Applied together this will allow you to provision extra JVB instances which will register themselves with the prosody service and be available for jicofo
to route conferences too. to route conferences too.




+ 32
- 0
group_vars/matrix_servers Прегледај датотеку

@@ -2555,6 +2555,38 @@ jitsi_self_check_validate_certificates: "{{ false if matrix_ssl_retrieval_method
# when embedding Jitsi in Matrix rooms. # when embedding Jitsi in Matrix rooms.
jitsi_disable_gravatar: true jitsi_disable_gravatar: true


# Traefik proxying for additional JVBs. These can't be configured using Docker
# labels, like the first JVB is, because they run on different hosts, so we add
# the necessary configuration to the file provider.
devture_traefik_provider_configuration_extension_yaml: |
http:
routers:
{% for host in groups['jitsi_jvb_servers'] %}

additional-{{ hostvars[host]['jitsi_jvb_server_id'] }}-router:
entryPoints:
- "{{ devture_traefik_entrypoint_primary }}"
rule: "Host(`{{ jitsi_hostname }}`) && PathPrefix(`/colibri-ws/{{ hostvars[host]['jitsi_jvb_server_id'] }}/`)"
service: additional-{{ hostvars[host]['jitsi_jvb_server_id'] }}-service
{% if devture_traefik_entrypoint_primary != 'web' %}

tls:
certResolver: "{{ devture_traefik_certResolver_primary }}"

{% endif %}

{% endfor %}

services:
{% for host in groups['jitsi_jvb_servers'] %}

additional-{{ hostvars[host]['jitsi_jvb_server_id'] }}-service:
loadBalancer:
servers:
- url: "http://{{ host }}:9090/"

{% endfor %}

###################################################################### ######################################################################
# #
# /jitsi # /jitsi


+ 0
- 9
roles/custom/matrix-nginx-proxy/defaults/main.yml Прегледај датотеку

@@ -701,12 +701,3 @@ matrix_nginx_proxy_proxy_matrix_nginx_status_allowed_addresses: ['{{ ansible_def
# http://nginx.org/en/docs/ngx_core_module.html#worker_connections # http://nginx.org/en/docs/ngx_core_module.html#worker_connections
matrix_nginx_proxy_worker_processes: auto matrix_nginx_proxy_worker_processes: auto
matrix_nginx_proxy_worker_connections: 1024 matrix_nginx_proxy_worker_connections: 1024

# A mapping of JVB server ids to hostname/ipa addresses used to add additional jvb blocks
# to the Jitsi's server configuration (matrix-jitsi.conf)
# Note: avoid using the JVB server id "jvb-1" as this is reserved for the main host.
# Example:
# matrix_nginx_proxy_proxy_jitsi_additional_jvbs:
# jvb-2: 192.168.0.1
# jvb-3: 192.168.0.2
matrix_nginx_proxy_proxy_jitsi_additional_jvbs: {}

+ 3
- 3
roles/custom/matrix-nginx-proxy/templates/nginx/conf.d/matrix-jitsi.conf.j2 Прегледај датотеку

@@ -53,10 +53,10 @@


tcp_nodelay on; tcp_nodelay on;
} }
{% for id, ip_address in matrix_nginx_proxy_proxy_jitsi_additional_jvbs.items() %}
{% for host in groups['jitsi_jvb_servers'] %}
# colibri (JVB) websockets for additional JVBs # colibri (JVB) websockets for additional JVBs
location ~ ^/colibri-ws/{{ id | regex_escape }}/(.*) {
proxy_pass http://{{ ip_address }}:9090/colibri-ws/{{ id }}/$1$is_args$args;
location ~ ^/colibri-ws/{{ hostvars[host]['jitsi_jvb_server_id'] | regex_escape }}/(.*) {
proxy_pass http://{{ host }}:9090/colibri-ws/{{ hostvars[host]['jitsi_jvb_server_id'] }}/$1$is_args$args;


proxy_set_header Host $host; proxy_set_header Host $host;
proxy_set_header X-Forwarded-For {{ matrix_nginx_proxy_x_forwarded_for }}; proxy_set_header X-Forwarded-For {{ matrix_nginx_proxy_x_forwarded_for }};


Loading…
Откажи
Сачувај