ansible-role-openstreamingp.../templates/osp-redirects.conf

129 lines
3.9 KiB
Plaintext

location /ospAuth {
internal;
set $channelID "";
if ($request_uri ~* /videos/(.+)/(.+)) {
set $channelID $1;
}
if ($request_uri ~* /videos/(.*)/clips/(.*)\.(.+)) {
set $channelID $1;
}
if ($request_uri ~* /stream-thumb/(.*)\.(.+)) {
set $channelID $1;
}
if ($request_uri ~* /live-adapt/(.*)\.m3u8) {
set $channelID $1;
}
if ($request_uri ~* /live-adapt/(.*)_(.*)/(.*)\.(.*)) {
set $channelID $1;
}
if ($request_uri ~* /live/(.+)/(.+)) {
set $channelID $1;
}
if ($request_uri ~* /edge/(.+)/(.+)) {
set $channelID $1;
}
if ($request_uri ~* /edge-adapt/(.*)\.m3u8) {
set $channelID $1;
}
if ($request_uri ~* /edge-adapt/(.*)_(.*)/(.*)\.(.*)) {
set $channelID $1;
}
proxy_pass http://socket_nodes/auth;
proxy_pass_request_body off;
proxy_set_header Content-Length "";
proxy_set_header X-Original-URI $request_uri;
proxy_set_header X-Channel-ID $channelID;
proxy_cache auth_cache;
proxy_cache_key "$cookie_ospSession$http_x_auth_token$channelID";
proxy_cache_valid 200 10m;
proxy_ignore_headers Set-Cookie;
}
location /videos {
auth_request /ospAuth;
alias {{ osp_http_path }}/videos;
}
location /videos/temp {
alias {{ osp_http_path }}/videos/temp;
}
location /stream-thumb {
auth_request /ospAuth;
alias {{ osp_http_path }}/stream-thumb;
}
location /live-adapt {
auth_request /ospAuth;
alias {{ osp_http_path }}/live-adapt;
}
location /live {
auth_request /ospAuth;
alias {{osp_http_path}}/live;
}
location /static {
alias /opt/osp/static;
}
location ~ /images(.*) {
# Disable cache
add_header Cache-Control no-cache;
# CORS setup
add_header 'Access-Control-Allow-Origin' '*' always;
add_header 'Access-Control-Expose-Headers' 'Content-Length';
# allow CORS preflight requests
if ($request_method = 'OPTIONS') {
add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Max-Age' 1728000;
add_header 'Content-Type' 'text/plain charset=UTF-8';
add_header 'Content-Length' 0;
return 204;
}
types {
application/vnd.apple.mpegurl m3u8;
video/mp2t ts;
}
root {{ osp_http_path }};
}
location /edge {
auth_request /ospAuth;
rewrite ^/edge/(.*)$ $scheme://$ospedge_node/live/$1 redirect;
}
location /edge-adapt {
auth_request /ospAuth;
rewrite ^/edge-adapt/(.*)$ $scheme://$ospedge_node/live-adapt/$1 redirect;
}
location /http-bind/ { # BOSH XMPP-HTTP
proxy_pass http://127.0.0.1:5280/bosh/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-for $proxy_add_x_forwarded_for;
proxy_redirect off;
proxy_buffering off;
proxy_read_timeout 65s;
proxy_send_timeout 65s;
keepalive_timeout 65s;
tcp_nodelay on;
}