2017-09-04 3 views
1

Je voudrais savoir s'il est possible de restreindre par IP certaines ressources: Je veux autoriser un modèle racine à tout le monde, et je veux restreindre toutes les racines à certaines adresses IP et sous-réseau.Nginx: Restreindre l'accès par IP avec des exceptions sur certaines routes

Dans mon nginx conf, je mets ceci:

#1 allow pdf files access to all 
location ~* /\.pdf$ { 
    allow all; 
} 

#2 restrict to these networks 
    allow <ip1>; 
    allow <network1>/22; 
    allow <network2>/23; 

#3 deny all other network 
    deny all; 

Quand je suis en train de se connecter à partir ips différents du bloc n ° 2, je reçois un accès refusé. Comment puis-je faire pour accéder aux fichiers pdf à partir de l'adresse IP différente du bloc n ° 2?

Répondre

0

Votre approche est correcte, mais l'expression régulière est incorrecte. Vous correspondez actuellement à des URI qui se terminent par /.pdf, mais vous voulez probablement faire correspondre des URI qui se terminent par .pdf.

Essayez:

location ~* \.pdf$ { 
    allow all; 
}