Nell'applicazione Node.js Beanstalk le istanze avranno il loro /etc/nginx/conf.d/00_elastic_beanstalk_proxy.conf impostato in questo modo:
server {
listen 8080;
location/{
proxy_pass http://nodejs;
proxy_set_header Connection "";
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
gzip on;
}
quello che vuoi è per essere impostato come questo:
server {
listen 8080;
location/{
proxy_pass http://nodejs;
proxy_set_header Connection "";
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
auth_basic "Restricted";
auth_basic_user_file /etc/nginx/.htpasswd;
}
gzip on;
}
Con un file di password separato /etc/nginx/.htpasswd che containts le credenziali di accesso.
FASE 1: Vai al tuo ambiente Linux locale e immettere
sudo htpasswd -c .htpasswd someusernameofyourchoice
spostarsi in quel file .htpasswd ed estrarre la linea nome utente e la password che hai generato. Sarà simile a questa:
someusernameofyourchoice:$apr1$.1EAU7DD$rt9jdihy1U.cFuBzJTMed.
FASE 2:
Ora nella root directory della vostra applicazione nodo (dove si trova il tuo .git/directory) creare una directory nascosta denominata .ebextensions/
navigare nella directory .ebextensions poiché è necessario creare 2 file.
FASE 3:
Il primo file sarà il file di configurazione che genererà il file .htpasswd sulla vostra applicazione pianta di fagioli. Inserire il nome utente e l'hash della password precedentemente generati in questo file e denominarlo come segue:
00_nginx_htpasswd.config
files:
"/etc/nginx/.htpasswd" :
mode: "000755"
owner: root
group: root
content: |
someusernameofyourchoice:$apr1$.1EAU7DD$rt9jdihy1U.cFuBzJTMed.
FASE 4:
Il secondo file può creare nella vostra .ebextensions/directory aggiornerà il file 00_elastic_beanstalk_proxy.conf al proprio ambiente elastico pianta di fagioli. Nome è il seguente:
01_nginx_auth.config
files:
/tmp/deployment/nginx_auth.sh:
mode: "000755"
content: |
sed -i 's/$proxy_add_x_forwarded_for;/$proxy_add_x_forwarded_for;\n auth_basic "Restricted";\n auth_basic_user_file \/etc\/nginx\/.htpasswd;\n/' /tmp/deployment/config/#etc#nginx#conf.d#00_elastic_beanstalk_proxy.conf
container_commands:
nginx_auth:
command: "/tmp/deployment/nginx_auth.sh"
NOTA: Se si desidera solo la protezione con password per essere in un certo ambiente, come l'ambiente di sviluppo. È possibile passare una variabile di ambiente nel proprio ambiente (nel pannello di configurazione> Configurazioni software sul dashboard di beanstalk) e quindi aggiungere un comando condizionale al comando di questo file che controlla la variabile di ambiente prima dell'esecuzione. In questo modo è possibile proteggere con password il proprio ambiente di sviluppo lasciando libero accesso al proprio ambiente di produzione. Come stai mettendo tutto in git per spingerlo nel tuo ambiente di beanstalk, questo è molto utile. Quello che segue è il file modificato con quelle aggiunte:
01_nginx_auth.config
files:
/tmp/deployment/nginx_auth.sh:
mode: "000755"
content: |
if [ "$NODE_ENV" == "development" ]; then
sed -i 's/$proxy_add_x_forwarded_for;/$proxy_add_x_forwarded_for;\n auth_basic "Restricted";\n auth_basic_user_file \/etc\/nginx\/.htpasswd;\n/' /tmp/deployment/config/#etc#nginx#conf.d#00_elastic_beanstalk_proxy.conf
fi
container_commands:
nginx_auth:
command: "/tmp/deployment/nginx_auth.sh"
FASE 5:
Una volta che avete entrambi questi file creati nel tuo .ebextensions/directory, impegnarli e spingili al tuo fagiolo elastico. A questo punto dovrebbe essere richiesta la combinazione di nome utente e password generata nel passaggio 1.
Ho finito per arrivare anche qui. [Passport] (http://passportjs.org/) era il modo giusto per raggiungere questo obiettivo, specialmente con Express. –