0

Je suis à la recherche d'une solution pour éviter à chaud la liaison avec Nginx pour JWPlayer. Dire que j'ai un serveur Nginx configuré comme proxy inverse à http://mydomain1.com, je vais l'url http://mydomain1.com/file.mp4 mettre sur mon site Web hébergé sur un autre VPS à http://mydomain2.com. Comment puis-je restreindre le fichier afin qu'il puisse être joué sur http://mydomain2.com seulement et nulle part ailleurs?Autoriser l'accès d'un domaine avec Nginx

J'ai essayé allow & deny directives, mais je réalise que c'est une diffusion en continu HTML5 de sorte que les directives vont bloquer le flux aux utilisateurs.

+0

Donc, vous voulez dire navigateur mydomain2.com et seulement permettre l'accès? –

+0

Désolé, je n'ai pas été clair. Je veux que le lien que j'ai reçu de domain1 (qui est un proxy inverse) soit capable de jouer uniquement sur domain2 (deux domaines sur des hôtes différents) en utilisant le lecteur html5. Est-il possible de configurer NGINX dans ce but? J'ai aussi essayé la directive valid_referers mais ça ne marche pas. –

+0

Si les serveurs sont différents, il faudra des changements sur domain1 nginx et pas domain2. Vous avez accès à domain1 nginx? –

Répondre

0

Parce que l'url mp4 sera mis dans un lecteur HTML5, cela signifie que l'adresse distante (la machine de l'utilisateur) toujours communiquer directement avec le proxy inverse . Il est donc impossible de restreindre l'accès en utilisant d'autres méthodes, à l'exception du module de liaison sécurisé nginx. Avec ce module, je suis maintenant en mesure de restreindre l'accès en fonction de l'adresse IP de l'utilisateur, l'heure d'expiration, l'URL et un mot secret.

0

Sur nginx de mydomain1.com. Assurez-vous d'avoir un bloc supplémentaire qui écoute l'hôte par défaut et refuse tout le trafic. Ensuite, dans le bloc d'écouter existant, nous ajoutons une règle pour autoriser seulement www.mydomain2.com

map $http_referer $not_allowed { 
    default 0; 
    "~www.mydomain2.com" 1; 
} 

server { 
    listen 80 default_server; 

    server_name _; 

    deny all; 
} 

server { 
    listen 80; 
    server_name www.mydomain1.com 

    location/{ 
     if ($not_allowed) 
     { 
      return 404 "Not sure its there"; 
     } 
    } 
} 
+0

Merci, j'ai essayé votre configuration mais elle a bloqué l'accès des utilisateurs aux fichiers mp4. Je pense que cela est dû au fonctionnement des lecteurs HTML5. Ils "stream" les fichiers directement à partir du proxy inverse avec l'identité de l'IP de l'utilisateur pas par le biais de domain2, de sorte que le serveur le verra comme un accès non autorisé. J'ai trouvé une alternative en utilisant Nginx http_secure_link_module, en essayant de l'implémenter. –