nginx 명령에 사용되는 파일에 매개변수를 전달하는 방법은 무엇입니까?

nginx 명령에 사용되는 파일에 매개변수를 전달하는 방법은 무엇입니까?

내 파일에 다음 줄이 있습니다 nginx.conf.

proxy_set_header Authorization "Basic dXNlcjpwYXNzd29yZA==";

nginx를 시작하는 현재 명령은 다음과 같습니다.

exec nginx -c /etc/nginx/nginx.conf

"Basic dXNlcjpwYXNzd29yZA=="위 명령에 문자열을 매개변수로 전달하고 파일 내에서 값을 사용하는 방법이 있습니까 nginx.conf?

내 말은, 이와 같은 것이 가능하다면:

exec nginx -c /etc/nginx/nginx.conf "Basic dXNlcjpwYXNzd29yZA=="

미리 감사드립니다.

답변1

나는 다음 코드를 작성했습니다.여기서 도움을 받아

#!/bin/sh

json_file=nginx/auth/basic.json
auth_header=$(jq '"Basic " + ("\(.user):\(.pass)" | @base64)' $json_file)

basicAuth=$(cat << EOF
map "" \$basicAuth {\n\tdefault $auth_header;\n}
EOF
)

conf_file=nginx/auth/basic.conf
echo $basicAuth > $conf_file

이 JSON을 변환합니다.

{
    "user": "user",
    "pass": "password"
}

다음 conf 파일을 입력하세요:

map "" $basicAuth {
    default "Basic dXNlcjpwYXNzd29yZA==";
}

basic.conf그런 다음 해당 파일을 내 nginx.conf파일 로 가져올 수 있습니다 .

http {
    include auth/auth.conf;
    ...

내 특정 위치에서는 다음을 사용합니다.

proxy_set_header Authorization $basicAuth;

Nginx는 이제 올바른 인증으로 요청을 프록시합니다.

관련 정보