Proxy additional JVBs through traefik (fixes #2721)pull/2845/head
| @@ -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. | ||||
| @@ -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 | ||||
| @@ -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: {} | |||||
| @@ -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 }}; | ||||