From 063c6b66f908719bf2b40dfbf016a48f109e8b7c Mon Sep 17 00:00:00 2001 From: Harry Jubb Date: Sat, 20 Jun 2020 15:53:31 +0000 Subject: [PATCH] RTMP(S) specific configuration. Resolves Move to RTMPS (secure RTMP) for streaming #12 --- server/backend/config/nginx/custom/nginx.conf | 108 ++++++++++++++++++ server/backend/config/nginx/custom/rtmp | 12 ++ server/backend/docker-compose.production.yml | 3 + server/backend/services/rtmp_nginx/nginx.conf | 2 + 4 files changed, 125 insertions(+) create mode 100644 server/backend/config/nginx/custom/nginx.conf create mode 100644 server/backend/config/nginx/custom/rtmp diff --git a/server/backend/config/nginx/custom/nginx.conf b/server/backend/config/nginx/custom/nginx.conf new file mode 100644 index 0000000..eb4cfd0 --- /dev/null +++ b/server/backend/config/nginx/custom/nginx.conf @@ -0,0 +1,108 @@ +## Version 2019/12/19 - Changelog: https://github.com/linuxserver/docker-letsencrypt/commits/master/root/defaults/nginx.conf + +user abc; +worker_processes 4; +pid /run/nginx.pid; +include /etc/nginx/modules/*.conf; + +events { + worker_connections 768; + # multi_accept on; +} + +# Full RTMP config including stream +include /config/nginx/rtmp/rtmp; + +http { + + ## + # Basic Settings + ## + + sendfile on; + tcp_nopush on; + tcp_nodelay on; + keepalive_timeout 65; + types_hash_max_size 2048; + variables_hash_max_size 2048; + large_client_header_buffers 4 16k; + + # server_tokens off; + + # server_names_hash_bucket_size 64; + # server_name_in_redirect off; + + client_max_body_size 0; + + include /etc/nginx/mime.types; + default_type application/octet-stream; + + ## + # Logging Settings + ## + + access_log /config/log/nginx/access.log; + error_log /config/log/nginx/error.log; + + ## + # Gzip Settings + ## + + gzip on; + gzip_disable "msie6"; + + # gzip_vary on; + # gzip_proxied any; + # gzip_comp_level 6; + # gzip_buffers 16 8k; + # gzip_http_version 1.1; + # gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript; + + ## + # nginx-naxsi config + ## + # Uncomment it if you installed nginx-naxsi + ## + + #include /etc/nginx/naxsi_core.rules; + + ## + # nginx-passenger config + ## + # Uncomment it if you installed nginx-passenger + ## + + #passenger_root /usr; + #passenger_ruby /usr/bin/ruby; + + ## + # Virtual Host Configs + ## + include /etc/nginx/conf.d/*.conf; + include /config/nginx/site-confs/*; + lua_load_resty_core off; + +} + + +#mail { +# # See sample authentication script at: +# # http://wiki.nginx.org/ImapAuthenticateWithApachePhpScript +# +# # auth_http localhost/auth.php; +# # pop3_capabilities "TOP" "USER"; +# # imap_capabilities "IMAP4rev1" "UIDPLUS"; +# +# server { +# listen localhost:110; +# protocol pop3; +# proxy on; +# } +# +# server { +# listen localhost:143; +# protocol imap; +# proxy on; +# } +#} +daemon off; diff --git a/server/backend/config/nginx/custom/rtmp b/server/backend/config/nginx/custom/rtmp new file mode 100644 index 0000000..ae0670e --- /dev/null +++ b/server/backend/config/nginx/custom/rtmp @@ -0,0 +1,12 @@ +# SSL termination for RTMP stream +stream { + upstream backend { + server rtmp_nginx:1936; + } + server { + listen 1935 ssl; + proxy_pass backend; + ssl_certificate /config/keys/letsencrypt/fullchain.pem; + ssl_certificate_key /config/keys/letsencrypt/privkey.pem; + } +} \ No newline at end of file diff --git a/server/backend/docker-compose.production.yml b/server/backend/docker-compose.production.yml index a33f982..212f960 100644 --- a/server/backend/docker-compose.production.yml +++ b/server/backend/docker-compose.production.yml @@ -27,6 +27,9 @@ services: - ./config/nginx/config:/config # Customise the nginx config with an overridden version - ./config/nginx/custom/site-confs/default:/config/nginx/site-confs/default + # Add RTMP-specific config + - ./config/nginx/custom/nginx.conf:/config/nginx/nginx.conf + - ./config/nginx/custom/rtmp:/config/nginx/rtmp/rtmp ports: - 443:443 - 80:80 diff --git a/server/backend/services/rtmp_nginx/nginx.conf b/server/backend/services/rtmp_nginx/nginx.conf index 846bc78..d94d030 100644 --- a/server/backend/services/rtmp_nginx/nginx.conf +++ b/server/backend/services/rtmp_nginx/nginx.conf @@ -12,6 +12,8 @@ rtmp { application live { live on; record off; + allow publish all; + allow play all; } } } \ No newline at end of file