-
-
Save mayeaux/f79a463036af656372a779a2a3e90ec0 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; | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment