# /etc/nginx/stream.conf # preread buffer size # TODO : global setting STREAM_PREREAD_BUFFER_SIZE preread_buffer_size 16k; # preread timeout # TODO : global setting STREAM_PREREAD_TIMEOUT preread_timeout 30s; # PROXY protocol timeout # TODO : global setting STREAM_PROXY_PROTOCOL_TIMEOUT proxy_protocol_timeout 30s; # resolvers to use resolver {{ DNS_RESOLVERS }} {% if USE_IPV6 == "no" %}ipv6=off{% endif %}; # resolver timeout # TODO : global setting STREAM_RESOLVER_TIMEOUT resolver_timeout 30s; # remove 200ms delay tcp_nodelay on; # lua path and dicts lua_package_path "/usr/share/bunkerweb/lua/?.lua;/usr/share/bunkerweb/core/?.lua;/etc/bunkerweb/plugins/?.lua;/usr/share/bunkerweb/deps/lib/lua/?.lua;;"; lua_package_cpath "/usr/share/bunkerweb/deps/lib/?.so;/usr/share/bunkerweb/deps/lib/lua/?.so;;"; lua_ssl_trusted_certificate "/usr/share/bunkerweb/misc/root-ca.pem"; lua_ssl_verify_depth 2; {% if has_variable(all, "SERVER_TYPE", "stream") +%} lua_shared_dict datastore_stream {{ DATASTORE_MEMORY_SIZE }}; lua_shared_dict cachestore_stream {{ CACHESTORE_MEMORY_SIZE }}; lua_shared_dict cachestore_ipc_stream {{ CACHESTORE_IPC_MEMORY_SIZE }}; lua_shared_dict cachestore_miss_stream {{ CACHESTORE_MISS_MEMORY_SIZE }}; lua_shared_dict cachestore_locks_stream {{ CACHESTORE_LOCKS_MEMORY_SIZE }}; # only show LUA socket errors at info/debug {% if LOG_LEVEL != "info" and LOG_LEVEL != "debug" %} lua_socket_log_errors off; {% endif %} # LUA init block include /etc/nginx/init-stream-lua.conf; # TODO add default stream server if that makes any sense ? # server config(s) {% if MULTISITE == "yes" and SERVER_NAME != "" %} {% set map_servers = {} %} {% for server_name in SERVER_NAME.split(" ") %} {% if server_name + "_SERVER_NAME" in all and all[server_name + "_SERVER_TYPE"] == "stream" %} {% set x = map_servers.update({server_name : all[server_name + "_SERVER_NAME"].split(" ")}) %} {% endif %} {% endfor %} {% for server_name in SERVER_NAME.split(" ") %} {% if not server_name in map_servers %} {% set found = {"res": false} %} {% for first_server, servers in map_servers.items() %} {% if server_name in servers %} {% set x = found.update({"res" : true}) %} {% endif %} {% endfor %} {% if not found["res"] and all[server_name + "_SERVER_TYPE"] == "stream" %} {% set x = map_servers.update({server_name : [server_name]}) %} {% endif %} {% endif %} {% endfor %} {% for first_server in map_servers +%} include /etc/nginx/{{ first_server }}/server-stream.conf; {% if all[first_server + "_USE_REVERSE_PROXY"] == "yes" and all[first_server + "_REVERSE_PROXY_HOST"] != "" +%} upstream {{ first_server }} { server {{ all[first_server + "_REVERSE_PROXY_HOST"] }}; } {% endif %} {% endfor %} {% elif MULTISITE == "no" and SERVER_NAME != "" and SERVER_TYPE == "stream" +%} include /etc/nginx/server-stream.conf; {% if USE_REVERSE_PROXY == "yes" and REVERSE_PROXY_HOST != "" +%} upstream {{ SERVER_NAME.split(" ")[0] }} { server {{ REVERSE_PROXY_HOST }}; } {% endif %} {% endif %} {% endif %}