<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css" style="display:none;"> P {margin-top:0;margin-bottom:0;} </style>
</head>
<body dir="ltr">
<div style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Hi Patrick,</div>
<div style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
This is the nginx config, do you think that i should use another method? like auth?</div>
<div style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<span>user www;<br>
</span>
<div>worker_processes auto;<br>
</div>
<div>pid /var/run/nginx.pid;<br>
</div>
<div>worker_rlimit_nofile 1048576;<br>
</div>
<div><br>
</div>
<div><br>
</div>
<div>events {<br>
</div>
<div>    worker_connections  1024;<br>
</div>
<div>    <br>
</div>
<div> <br>
</div>
<div>}<br>
</div>
<div><br>
</div>
<div><br>
</div>
<div>http {<br>
</div>
<div>    <br>
</div>
<div>    include       mime.types;<br>
</div>
<div>    default_type  text/html;<br>
</div>
<div>    log_format  custom_cache_log '$remote_addr - $remote_user [$time_local] '<br>
</div>
<div>                    '"$request" $status $body_bytes_sent '<br>
</div>
<div>                    '"$http_referer" "$http_user_agent"';<br>
</div>
<div>    sendfile           on;<br>
</div>
<div>    keepalive_timeout  65;<br>
</div>
<div>    <br>
</div>
<div>    proxy_cache_path   /tmp/nginx/cache levels=1:2 keys_zone=s3_cache:10m max_size=4G inactive=60m use_temp_path=off;<br>
</div>
<div><br>
</div>
<div>    map $uri $hls_uri {<br>
</div>
<div>        ~^(?<base_uri>.*).m3u8$ $base_uri;<br>
</div>
<div>        ~^(?<base_uri>.*).ts$   $base_uri;<br>
</div>
<div>        default                 $uri;<br>
</div>
<div>    }<br>
</div>
<div><br>
</div>
<div><br>
</div>
<div>    server {<br>
</div>
<div>        listen       80;<br>
</div>
<div><br>
</div>
<div>        access_log  /var/log/nginx/lotuscdn.com.access.log custom_cache_log;<br>
</div>
<div>error_log /var/log/nginx/lotuscdn.com.error.log warn;<br>
</div>
<div><br>
</div>
<div><br>
</div>
<div>        location / {<br>
</div>
<div>           proxy_cache            s3_cache;<br>
</div>
<div>           proxy_http_version     1.1;<br>
</div>
<div>           proxy_set_header       Connection "";<br>
</div>
<div>           proxy_set_header       Authorization '';<br>
</div>
<div>           proxy_set_header       Host 's3test.s3.amazonaws.com';<br>
</div>
<div>           proxy_hide_header      x-amz-id-2;<br>
</div>
<div>           proxy_hide_header      x-amz-request-id;<br>
</div>
<div>           proxy_hide_header      x-amz-meta-server-side-encryption;<br>
</div>
<div>           proxy_hide_header      x-amz-server-side-encryption;<br>
</div>
<div>           proxy_hide_header      Set-Cookie;<br>
</div>
<div>       proxy_hide_header   x-amz-storage-class;<br>
</div>
<div>       proxy_ignore_headers   Set-Cookie;<br>
</div>
<div>           proxy_cache_revalidate on;<br>
</div>
<div>           proxy_intercept_errors on;<br>
</div>
<div>           proxy_cache_use_stale  error timeout updating http_500 http_502 http_503 http_504;<br>
</div>
<div>           proxy_cache_lock       on;<br>
</div>
<div>       proxy_cache_background_update on;<br>
</div>
<div>           proxy_cache_valid      200 60m;<br>
</div>
<div>           add_header             Cache-Control max-age=31536000;<br>
</div>
<div>           add_header             X-Cache-Status $upstream_cache_status;<br>
</div>
<div>           proxy_pass             http://s3test.s3.amazonaws.com/;<br>
</div>
<div>       add_header             'Access-Control-Allow-Origin' '*';<br>
</div>
<div>           add_header             'Access-Control-Allow-Credentials' 'true';<br>
</div>
<div>           add_header             'Access-Control-Allow-Headers' 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Origin,X-Auth-Token,Authorization,Accept,Client-Security-Token';<br>
</div>
<div>           add_header             'Access-Control-Allow-Methods' 'OPTIONS, GET';<br>
</div>
<div><br>
</div>
<div>           secure_link $arg_md5,$arg_expires;<br>
</div>
<div>           secure_link_md5 "enigma$uri$secure_link_expires";<br>
</div>
<div><br>
</div>
<div>           if ($secure_link = "") { return 403; }<br>
</div>
<div>           if ($secure_link = "0") { return 410; }<br>
</div>
<div><br>
</div>
<div>    <br>
</div>
<div>           <br>
</div>
<div><br>
</div>
<div>        }<br>
</div>
<div><br>
</div>
<div><br>
</div>
<div><br>
</div>
<div>        # redirect server error pages to the static page /50x.html<br>
</div>
<div>        error_page   500 502 503 504  /50x.html;<br>
</div>
<div>        location = /50x.html {<br>
</div>
<div>            root   /usr/local/www/nginx-dist;<br>
</div>
<div>        }<br>
</div>
<div><br>
</div>
<div>    }<br>
</div>
<div><br>
</div>
<div>}<br>
</div>
<span></span><br>
</div>
<div>
<div id="appendonsend"></div>
<div style="font-family:Calibri,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)">
<br>
</div>
<div style="font-family:Calibri,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)">
<br>
</div>
<div style="font-family:Calibri,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)">
<br>
</div>
<div style="font-family:Calibri,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)">
Thanks</div>
<div style="font-family:Calibri,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)">
Andrew</div>
<hr tabindex="-1" style="display:inline-block; width:98%">
<div id="divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" color="#000000" style="font-size:11pt"><b>From:</b> nginx <nginx-bounces@nginx.org> on behalf of Patrick <201904-nginx@jslf.app><br>
<b>Sent:</b> Friday, June 7, 2019 12:29 AM<br>
<b>To:</b> nginx@nginx.org<br>
<b>Subject:</b> Re: Securing URLs with the Secure Link Module in NGINX</font>
<div> </div>
</div>
<div class="BodyFragment"><font size="2"><span style="font-size:11pt">
<div class="PlainText">On 2019-06-06 23:00, Andrew Andonopoulos wrote:<br>
> However i changed it little bit and i used the following (without map) and i was able to get 200 for only the URI, so i presume that the secure link with NGINX is working:<br>
<br>
Can you post a redacted version of the config file?<br>
<br>
Secure Link should work -- however it's not great because unless the m3u8<br>
playlist is generated on the fly, the media assets will not be protected<br>
by the Secure Link setup.<br>
<br>
<br>
<br>
Patrick<br>
_______________________________________________<br>
nginx mailing list<br>
nginx@nginx.org<br>
<a href="http://mailman.nginx.org/mailman/listinfo/nginx">http://mailman.nginx.org/mailman/listinfo/nginx</a><br>
</div>
</span></font></div>
</div>
</body>
</html>