optional media cache with range requests support (#1759)
This commit is contained in:
parent
832b0eb1b1
commit
acaebfbf67
|
@ -275,7 +275,7 @@ matrix_nginx_proxy_proxy_matrix_federation_api_ssl_trusted_certificate: "{{ matr
|
||||||
|
|
||||||
# The tmpfs at /tmp needs to be large enough to handle multiple concurrent file uploads.
|
# The tmpfs at /tmp needs to be large enough to handle multiple concurrent file uploads.
|
||||||
matrix_nginx_proxy_tmp_directory_size_mb: "{{ (matrix_nginx_proxy_proxy_matrix_federation_api_client_max_body_size_mb | int) * 50 }}"
|
matrix_nginx_proxy_tmp_directory_size_mb: "{{ (matrix_nginx_proxy_proxy_matrix_federation_api_client_max_body_size_mb | int) * 50 }}"
|
||||||
|
matrix_nginx_proxy_tmp_cache_directory_size_mb: "{{ (matrix_nginx_proxy_synapse_cache_max_size_mb | int) * 2 }}"
|
||||||
# A list of strings containing additional configuration blocks to add to the nginx server configuration (nginx.conf).
|
# A list of strings containing additional configuration blocks to add to the nginx server configuration (nginx.conf).
|
||||||
# for big matrixservers to enlarge the number of open files to prevent timeouts
|
# for big matrixservers to enlarge the number of open files to prevent timeouts
|
||||||
# matrix_nginx_proxy_proxy_additional_configuration_blocks:
|
# matrix_nginx_proxy_proxy_additional_configuration_blocks:
|
||||||
|
@ -557,6 +557,16 @@ matrix_nginx_proxy_synapse_media_repository_locations: []
|
||||||
matrix_nginx_proxy_synapse_user_dir_locations: []
|
matrix_nginx_proxy_synapse_user_dir_locations: []
|
||||||
matrix_nginx_proxy_synapse_frontend_proxy_locations: []
|
matrix_nginx_proxy_synapse_frontend_proxy_locations: []
|
||||||
|
|
||||||
|
# synapse content caching
|
||||||
|
matrix_nginx_proxy_synapse_cache_enabled: false
|
||||||
|
matrix_nginx_proxy_synapse_cache_path: "{{ '/tmp/synapse-cache' if matrix_nginx_proxy_enabled else matrix_nginx_proxy_data_path+'/synapse-cache' }}"
|
||||||
|
matrix_nginx_proxy_synapse_cache_keys_zone_name: "STATIC"
|
||||||
|
matrix_nginx_proxy_synapse_cache_keys_zone_size: "10m"
|
||||||
|
matrix_nginx_proxy_synapse_cache_inactive_time: "48h"
|
||||||
|
matrix_nginx_proxy_synapse_cache_max_size_mb: 1024
|
||||||
|
matrix_nginx_proxy_synapse_cache_proxy_cache_valid_time: "24h"
|
||||||
|
|
||||||
|
|
||||||
# The amount of worker processes and connections
|
# The amount of worker processes and connections
|
||||||
# Consider increasing these when you are expecting high amounts of traffic
|
# Consider increasing these when you are expecting high amounts of traffic
|
||||||
# http://nginx.org/en/docs/ngx_core_module.html#worker_connections
|
# http://nginx.org/en/docs/ngx_core_module.html#worker_connections
|
||||||
|
|
|
@ -12,15 +12,17 @@
|
||||||
#
|
#
|
||||||
- name: Ensure Matrix nginx-proxy paths exist
|
- name: Ensure Matrix nginx-proxy paths exist
|
||||||
file:
|
file:
|
||||||
path: "{{ item }}"
|
path: "{{ item.path }}"
|
||||||
state: directory
|
state: directory
|
||||||
mode: 0750
|
mode: 0750
|
||||||
owner: "{{ matrix_user_username }}"
|
owner: "{{ matrix_user_username }}"
|
||||||
group: "{{ matrix_user_groupname }}"
|
group: "{{ matrix_user_groupname }}"
|
||||||
with_items:
|
with_items:
|
||||||
- "{{ matrix_nginx_proxy_base_path }}"
|
- {path: "{{ matrix_nginx_proxy_base_path }}", when: true}
|
||||||
- "{{ matrix_nginx_proxy_data_path }}"
|
- {path: "{{ matrix_nginx_proxy_data_path }}", when: true}
|
||||||
- "{{ matrix_nginx_proxy_confd_path }}"
|
- {path: "{{ matrix_nginx_proxy_confd_path }}", when: true}
|
||||||
|
- {path: "{{ matrix_nginx_proxy_synapse_cache_path }}", when: "{{ matrix_nginx_proxy_synapse_cache_enabled and not matrix_nginx_proxy_enabled }}"}
|
||||||
|
when: item.when|bool
|
||||||
|
|
||||||
- name: Ensure Matrix nginx-proxy configured (main config override)
|
- name: Ensure Matrix nginx-proxy configured (main config override)
|
||||||
template:
|
template:
|
||||||
|
|
|
@ -5,6 +5,9 @@
|
||||||
{% set user_dir_workers = matrix_nginx_proxy_synapse_workers_list|selectattr('type', 'equalto', 'user_dir')|list %}
|
{% set user_dir_workers = matrix_nginx_proxy_synapse_workers_list|selectattr('type', 'equalto', 'user_dir')|list %}
|
||||||
{% set frontend_proxy_workers = matrix_nginx_proxy_synapse_workers_list|selectattr('type', 'equalto', 'frontend_proxy')|list %}
|
{% set frontend_proxy_workers = matrix_nginx_proxy_synapse_workers_list|selectattr('type', 'equalto', 'frontend_proxy')|list %}
|
||||||
{% if matrix_nginx_proxy_synapse_workers_enabled %}
|
{% if matrix_nginx_proxy_synapse_workers_enabled %}
|
||||||
|
{% if matrix_nginx_proxy_synapse_cache_enabled %}
|
||||||
|
proxy_cache_path {{ matrix_nginx_proxy_synapse_cache_path }} levels=1:2 keys_zone={{ matrix_nginx_proxy_synapse_cache_keys_zone_name }}:{{ matrix_nginx_proxy_synapse_cache_keys_zone_size }} inactive={{ matrix_nginx_proxy_synapse_cache_inactive_time }} max_size={{ matrix_nginx_proxy_synapse_cache_max_size_mb }}m;
|
||||||
|
{% endif %}
|
||||||
# Round Robin "upstream" pools for workers
|
# Round Robin "upstream" pools for workers
|
||||||
|
|
||||||
{% if generic_workers %}
|
{% if generic_workers %}
|
||||||
|
@ -95,6 +98,14 @@ server {
|
||||||
client_body_buffer_size 25M;
|
client_body_buffer_size 25M;
|
||||||
client_max_body_size {{ matrix_nginx_proxy_proxy_matrix_client_api_client_max_body_size_mb }}M;
|
client_max_body_size {{ matrix_nginx_proxy_proxy_matrix_client_api_client_max_body_size_mb }}M;
|
||||||
proxy_max_temp_file_size 0;
|
proxy_max_temp_file_size 0;
|
||||||
|
|
||||||
|
{% if matrix_nginx_proxy_synapse_cache_enabled %}
|
||||||
|
proxy_buffering on;
|
||||||
|
proxy_cache {{ matrix_nginx_proxy_synapse_cache_keys_zone_name }};
|
||||||
|
proxy_cache_valid any {{ matrix_nginx_proxy_synapse_cache_proxy_cache_valid_time }};
|
||||||
|
proxy_force_ranges on;
|
||||||
|
add_header X-Cache-Status $upstream_cache_status;
|
||||||
|
{% endif %}
|
||||||
}
|
}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
@ -227,6 +238,14 @@ server {
|
||||||
client_body_buffer_size 25M;
|
client_body_buffer_size 25M;
|
||||||
client_max_body_size {{ matrix_nginx_proxy_proxy_matrix_federation_api_client_max_body_size_mb }}M;
|
client_max_body_size {{ matrix_nginx_proxy_proxy_matrix_federation_api_client_max_body_size_mb }}M;
|
||||||
proxy_max_temp_file_size 0;
|
proxy_max_temp_file_size 0;
|
||||||
|
|
||||||
|
{% if matrix_nginx_proxy_synapse_cache_enabled %}
|
||||||
|
proxy_buffering on;
|
||||||
|
proxy_cache {{ matrix_nginx_proxy_synapse_cache_keys_zone_name }};
|
||||||
|
proxy_cache_valid any {{ matrix_nginx_proxy_synapse_cache_proxy_cache_valid_time }};
|
||||||
|
proxy_force_ranges on;
|
||||||
|
add_header X-Cache-Status $upstream_cache_status;
|
||||||
|
{% endif %}
|
||||||
}
|
}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
|
@ -22,6 +22,9 @@ ExecStart={{ matrix_host_command_docker }} run --rm --name matrix-nginx-proxy \
|
||||||
--cap-drop=ALL \
|
--cap-drop=ALL \
|
||||||
--read-only \
|
--read-only \
|
||||||
--tmpfs=/tmp:rw,noexec,nosuid,size={{ matrix_nginx_proxy_tmp_directory_size_mb }}m \
|
--tmpfs=/tmp:rw,noexec,nosuid,size={{ matrix_nginx_proxy_tmp_directory_size_mb }}m \
|
||||||
|
{% if matrix_nginx_proxy_synapse_cache_enabled %}
|
||||||
|
--tmpfs=/tmp/synapse-cache:rw,noexec,nosuid,size={{ matrix_nginx_proxy_tmp_cache_directory_size_mb }}m\
|
||||||
|
{% endif %}
|
||||||
--network={{ matrix_docker_network }} \
|
--network={{ matrix_docker_network }} \
|
||||||
{% if matrix_nginx_proxy_container_http_host_bind_port %}
|
{% if matrix_nginx_proxy_container_http_host_bind_port %}
|
||||||
-p {{ matrix_nginx_proxy_container_http_host_bind_port }}:8080 \
|
-p {{ matrix_nginx_proxy_container_http_host_bind_port }}:8080 \
|
||||||
|
|
Loading…
Reference in a new issue