2017-03-15 1 views
5

J'ai une situation dans laquelle nous avons défini auth_basic au niveau global pour tous les sites non live. Est-il possible dans Nginx de remplacer ce auth_basic dans un fichier spécifique au site et d'appliquer auth_basic pour un chemin spécifique au site avec un nouveau mot de passe d'authentification.Comment remplacer le global auth_basic dans nginx

auth_basic au niveau mondial est situé sur /etc/nginx/conf.d/auth.conf

configuration spécifique au site se trouve sur /etc/nginx/sites-enabled/sitename.conf

dans nginx.conf Je:

include /etc/nginx/conf.d/*.conf; 
    include /etc/nginx/sites-enabled/*; 

Répondre

2

Oui, vous pouvez le faire.

Je cite la docs: http://nginx.org/en/docs/http/ngx_http_auth_basic_module.html#auth_basic

Syntaxe: string auth_basic | de;

Valeur par défaut: auth_basic off;

Contexte: http, serveur, emplacement, limit_except

Comme vous pouvez le voir la directive elle-même peut être défini à plusieurs niveaux (contextes), à savoir si vous avez au niveau mondial, vous pouvez le désactiver au serveur ou même niveau d'emplacement.

La même chose est vraie pour la auth_basic_user_file directive http://nginx.org/en/docs/http/ngx_http_auth_basic_module.html#auth_basic_user_file

donc vous pouvez avoir auth_basic/auth_basic_user_file défini au niveau mondial et l'ont par chaque site de substitution

auth.conf :

auth_basic global;               
auth_basic_user_file <path_to_your_auth_file>;     

sitename.conf:

auth_basic sitenamereal; # any name, actually you can omit it 
auth_basic_user_file <path_to_your_site_specific_file>; 
+0

ne fonctionne pas comme prévu. les informations d'identification utilisateur globales remplacent toujours les informations les plus récentes. – shrish

+0

pouvez-vous partager vos fichiers de configuration en le reproduisant? + Quelle est votre version de nginx? – ffeast

+0

Cette solution ne fonctionne pas pour moi non plus –