Last active
November 1, 2024 21:12
-
-
Save CSRaghunandan/ce2394cd5a9c8a412f8ff5ee1478560a to your computer and use it in GitHub Desktop.
Nginx configuration for serving mp4 videos
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#user nobody; | |
worker_processes 4; | |
#error_log logs/error.log; | |
#error_log logs/error.log notice; | |
#error_log logs/error.log info; | |
#pid logs/nginx.pid; | |
events { | |
worker_connections 1024; | |
} | |
http { | |
include mime.types; | |
default_type application/octet-stream; | |
#log_format main '$remote_addr - $remote_user [$time_local] "$request" ' | |
# '$status $body_bytes_sent "$http_referer" ' | |
# '"$http_user_agent" "$http_x_forwarded_for"'; | |
access_log off; | |
sendfile_max_chunk 512k; | |
sendfile on; | |
tcp_nopush on; | |
keepalive_timeout 65; | |
gzip on; | |
# another virtual host using mix of IP-, name-, and port-based configuration | |
# | |
#server { | |
# listen 8000; | |
# listen somename:8080; | |
# server_name somename alias another.alias; | |
# location / { | |
# root html; | |
# index index.html index.htm; | |
# } | |
#} | |
# HTTPS server | |
# | |
#server { | |
# listen 443 ssl; | |
# server_name localhost; | |
# ssl_certificate cert.pem; | |
# ssl_certificate_key cert.key; | |
# ssl_session_cache shared:SSL:1m; | |
# ssl_session_timeout 5m; | |
# ssl_ciphers HIGH:!aNULL:!MD5; | |
# ssl_prefer_server_ciphers on; | |
# location / { | |
# root html; | |
# index index.html index.htm; | |
# } | |
#} | |
server { | |
# add proxy caches | |
proxy_cache_path /tmp/mycache keys_zone=mycache:70m; | |
listen *:9000 ; | |
#listen [::]:80 ipv6only=on; | |
root /usr/local/nginx/html; | |
index index.html index.htm; | |
# Make site accessible from http://localhost/ | |
server_name _; | |
location /rtc { | |
#try_files $uri $uri/ /index.html; | |
proxy_set_header Host $host; | |
proxy_set_header X-Real-IP $remote_addr; | |
proxy_pass http://127.0.0.1:8088/janus; | |
} | |
location /rtcapp { | |
# enable thread pools for livestream | |
aio threads=default; | |
proxy_pass http://localhost:8188; | |
proxy_http_version 1.1; | |
proxy_set_header Upgrade $http_upgrade; | |
proxy_set_header Connection "upgrade"; | |
proxy_set_header Host $host; | |
} | |
location ~ \.flv$ { | |
# enable thread pool | |
aio threads=default; | |
flv; | |
} | |
location ~/.mp4 { | |
root /media; | |
mp4; | |
mp4_buffer_size 1M; | |
mp4_max_buffer_size 3M; | |
# enable thread bool | |
aio threads=default; | |
# enable caching for mp4 videos | |
proxy_cache mycache; | |
proxy_cache_valid 200 300s; | |
proxy_cache_lock on; | |
# enable nginx slicing | |
slice 1m; | |
proxy_cache_key $host$uri$is_args$args$slice_range; | |
proxy_set_header Range $slice_range; | |
proxy_http_version 1.1; | |
# Immediately forward requests to the origin if we are filling the cache | |
proxy_cache_lock_timeout 0s; | |
# Set the 'age' to a value larger than the expected fill time | |
proxy_cache_lock_age 200s; | |
proxy_cache_use_stale updating; | |
} | |
} | |
} |
For Ubuntu Users please first install nginx mp4 module using this command
sudo apt-get install nginx-extras
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
@CSRaghunandan Could you please tell me what nginx modules needed for your conf file?