W aplikacji node.js beanstalk instancje będą miały swoje /etc/nginx/conf.d/00_elastic_beanstalk_proxy.conf skonfigurować tak:
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;
}
Co chcesz, jest na to, aby być ustawione tak:
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;
}
z osobnym pliku haseł w /etc/nginx/.htpasswd że containts swoje dane logowania.
KROK 1: udać się do lokalnego środowiska Linux i wprowadź
sudo htpasswd -c .htpasswd someusernameofyourchoice
nawigować do tego pliku .htpasswd i wyciągnąć linię nazwę użytkownika i hasło wygenerowane. Będzie to wyglądać mniej więcej tak:
someusernameofyourchoice:$apr1$.1EAU7DD$rt9jdihy1U.cFuBzJTMed.
Krok 2:
Teraz w katalogu głównym aplikacji węzeł (gdzie .git/katalogu znajduje) utworzyć ukryty katalog o nazwie .ebextensions/
przejdź do tego katalogu .ebextensions /, aby utworzyć 2 pliki.
KROK 3:
Pierwszy plik będzie plik konfiguracyjny, który wygeneruje plik .htpasswd na aplikacji beanstalk. Umieść nazwę użytkownika i hasło, które wcześniej wygenerowałeś w tym pliku, i nadaj im następujące nazwy:
00_nginx_htpasswd.config
files:
"/etc/nginx/.htpasswd" :
mode: "000755"
owner: root
group: root
content: |
someusernameofyourchoice:$apr1$.1EAU7DD$rt9jdihy1U.cFuBzJTMed.
KROK 4:
Drugi plik zostanie utworzony w katalogu/.ebextensions będzie zaktualizować plik 00_elastic_beanstalk_proxy.conf na dysku elastycznego środowiska beanstalk. Nazwa jest następująca:
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"
UWAGA: Jeśli chcesz tylko ochrona hasłem, aby być w pewnym środowisku, takim jak środowisko programistyczne. Możesz przekazać zmienną środowiskową do swojego środowiska (w konfiguracjach> panelu Konfiguracje oprogramowania na pulpicie nawigacyjnym beanstalk), a następnie możesz dodać warunkową do komendy tego pliku, która sprawdza zmienną środowiskową przed jej uruchomieniem. W ten sposób można zabezpieczyć hasłem środowisko programistyczne, pozostawiając środowisko produkcyjne bezpłatne dla publiczności. Gdy wkładasz wszystko do git, aby przenieść je do twojego środowiska beanstalk, jest to bardzo przydatne. Poniżej znajduje się zmodyfikowany plik z tymi dodatkami:
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"
KROK 5:
Gdy masz obu tych plików utworzonych w .ebextensions/katalogu, popełnić je i popchnij je do swojej elastycznej fasoli. Powinieneś teraz zostać poproszony o podanie kombinacji nazwy użytkownika i hasła wygenerowanej w kroku 1.
Skończyło się na tym, że dostałem się tutaj. [Passport] (http://passportjs.org/) był właściwą drogą do osiągnięcia tego celu, szczególnie w przypadku Express. –