Command-Line
如何將參數傳遞給 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=="
提前致謝。
我已經寫了這段程式碼:在here的幫助下
#!/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 現在正在使用正確的身份驗證代理請求。