Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

jitsi-meet.example 5.8KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209
  1. server_names_hash_bucket_size 64;
  2. types {
  3. # nginx's default mime.types doesn't include a mapping for wasm or wav.
  4. application/wasm wasm;
  5. audio/wav wav;
  6. }
  7. upstream prosody {
  8. zone upstreams 64K;
  9. server 127.0.0.1:5280;
  10. keepalive 2;
  11. }
  12. upstream jvb1 {
  13. zone upstreams 64K;
  14. server 127.0.0.1:9090;
  15. keepalive 2;
  16. }
  17. map $arg_vnode $prosody_node {
  18. default prosody;
  19. v1 v1;
  20. v2 v2;
  21. v3 v3;
  22. v4 v4;
  23. v5 v5;
  24. v6 v6;
  25. v7 v7;
  26. v8 v8;
  27. }
  28. server {
  29. listen 80;
  30. listen [::]:80;
  31. server_name jitsi-meet.example.com;
  32. location ^~ /.well-known/acme-challenge/ {
  33. default_type "text/plain";
  34. root /usr/share/jitsi-meet;
  35. }
  36. location = /.well-known/acme-challenge/ {
  37. return 404;
  38. }
  39. location / {
  40. return 301 https://$host$request_uri;
  41. }
  42. }
  43. server {
  44. listen 443 ssl;
  45. listen [::]:443 ssl;
  46. server_name jitsi-meet.example.com;
  47. # Mozilla Guideline v5.4, nginx 1.17.7, OpenSSL 1.1.1d, intermediate configuration
  48. ssl_protocols TLSv1.2 TLSv1.3;
  49. ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
  50. ssl_prefer_server_ciphers off;
  51. ssl_session_timeout 1d;
  52. ssl_session_cache shared:SSL:10m; # about 40000 sessions
  53. ssl_session_tickets off;
  54. add_header Strict-Transport-Security "max-age=63072000" always;
  55. set $prefix "";
  56. set $custom_index "";
  57. set $config_js_location /etc/jitsi/meet/jitsi-meet.example.com-config.js;
  58. ssl_certificate /etc/jitsi/meet/jitsi-meet.example.com.crt;
  59. ssl_certificate_key /etc/jitsi/meet/jitsi-meet.example.com.key;
  60. root /usr/share/jitsi-meet;
  61. # ssi on with javascript for multidomain variables in config.js
  62. ssi on;
  63. ssi_types application/x-javascript application/javascript;
  64. index index.html index.htm;
  65. error_page 404 /static/404.html;
  66. gzip on;
  67. gzip_types text/plain text/css application/javascript application/json image/x-icon application/octet-stream application/wasm;
  68. gzip_vary on;
  69. gzip_proxied no-cache no-store private expired auth;
  70. gzip_min_length 512;
  71. include /etc/jitsi/meet/jaas/*.conf;
  72. location = /config.js {
  73. alias $config_js_location;
  74. }
  75. location = /external_api.js {
  76. alias /usr/share/jitsi-meet/libs/external_api.min.js;
  77. }
  78. location = /_api/room-info {
  79. proxy_pass http://prosody/room-info?prefix=$prefix&$args;
  80. proxy_http_version 1.1;
  81. proxy_set_header X-Forwarded-For $remote_addr;
  82. proxy_set_header Host $http_host;
  83. }
  84. location ~ ^/_api/public/(.*)$ {
  85. autoindex off;
  86. alias /etc/jitsi/meet/public/$1;
  87. }
  88. # ensure all static content can always be found first
  89. location ~ ^/(libs|css|static|images|fonts|lang|sounds|.well-known)/(.*)$
  90. {
  91. add_header 'Access-Control-Allow-Origin' '*';
  92. alias /usr/share/jitsi-meet/$1/$2;
  93. # cache all versioned files
  94. if ($arg_v) {
  95. expires 1y;
  96. }
  97. }
  98. # BOSH
  99. location = /http-bind {
  100. proxy_pass http://$prosody_node/http-bind?prefix=$prefix&$args;
  101. proxy_http_version 1.1;
  102. proxy_set_header X-Forwarded-For $remote_addr;
  103. proxy_set_header Host $http_host;
  104. proxy_set_header Connection "";
  105. }
  106. # xmpp websockets
  107. location = /xmpp-websocket {
  108. proxy_pass http://$prosody_node/xmpp-websocket?prefix=$prefix&$args;
  109. proxy_http_version 1.1;
  110. proxy_set_header Upgrade $http_upgrade;
  111. proxy_set_header Connection "upgrade";
  112. proxy_set_header Host $http_host;
  113. tcp_nodelay on;
  114. }
  115. # colibri (JVB) websockets for jvb1
  116. location ~ ^/colibri-ws/default-id/(.*) {
  117. proxy_pass http://jvb1/colibri-ws/default-id/$1$is_args$args;
  118. proxy_http_version 1.1;
  119. proxy_set_header Upgrade $http_upgrade;
  120. proxy_set_header Connection "upgrade";
  121. tcp_nodelay on;
  122. }
  123. # load test minimal client, uncomment when used
  124. #location ~ ^/_load-test/([^/?&:'"]+)$ {
  125. # rewrite ^/_load-test/(.*)$ /load-test/index.html break;
  126. #}
  127. #location ~ ^/_load-test/libs/(.*)$ {
  128. # add_header 'Access-Control-Allow-Origin' '*';
  129. # alias /usr/share/jitsi-meet/load-test/libs/$1;
  130. #}
  131. location ~ ^/([^/?&:'"]+)$ {
  132. set $roomname "$1";
  133. try_files $uri @root_path;
  134. }
  135. location @root_path {
  136. rewrite ^/(.*)$ /$custom_index break;
  137. }
  138. location ~ ^/([^/?&:'"]+)/config.js$
  139. {
  140. set $subdomain "$1.";
  141. set $subdir "$1/";
  142. alias $config_js_location;
  143. }
  144. # Matches /(TENANT)/pwa-worker.js or /(TENANT)/manifest.json to rewrite to / and look for file
  145. location ~ ^/([^/?&:'"]+)/(pwa-worker.js|manifest.json)$ {
  146. set $subdomain "$1.";
  147. set $subdir "$1/";
  148. rewrite ^/([^/?&:'"]+)/(pwa-worker.js|manifest.json)$ /$2;
  149. }
  150. # BOSH for subdomains
  151. location ~ ^/([^/?&:'"]+)/http-bind {
  152. set $subdomain "$1.";
  153. set $subdir "$1/";
  154. set $prefix "$1";
  155. rewrite ^/(.*)$ /http-bind;
  156. }
  157. # websockets for subdomains
  158. location ~ ^/([^/?&:'"]+)/xmpp-websocket {
  159. set $subdomain "$1.";
  160. set $subdir "$1/";
  161. set $prefix "$1";
  162. rewrite ^/(.*)$ /xmpp-websocket;
  163. }
  164. location ~ ^/([^/?&:'"]+)/_api/room-info {
  165. set $subdomain "$1.";
  166. set $subdir "$1/";
  167. set $prefix "$1";
  168. rewrite ^/(.*)$ /_api/room-info;
  169. }
  170. # Anything that didn't match above, and isn't a real file, assume it's a room name and redirect to /
  171. location ~ ^/([^/?&:'"]+)/(.*)$ {
  172. set $subdomain "$1.";
  173. set $subdir "$1/";
  174. rewrite ^/([^/?&:'"]+)/(.*)$ /$2;
  175. }
  176. }