צודק לגמרי. אז ככה:
שידרגתי, ע"י כלים אוטומטים, כבקישור לעיל, אז אין לי איך לתאר איך. הדבר היחיד שאני יודע שבשלב כלשהו קפצה לי שאלה שלא התעמקתי בה על הבדל בין קובץ הקינפוג הנוכחי לחדש ונתן לי כמה אפשרויות לבחור, בחרתי בברירת המחדל שזה השארת הקינפוג הקיים.
אחר כך אני מאתחל את השרת:
sudo systemctl restart nginx
ומקבל שגיאה.אז אני בודק:
systemctl status nginx.service
ומקבל
Nov 07 12:41:14 ip-172-31-81-0 nginx[2957]: nginx: [warn] low address bits of 172.31.81.0/20 are meaningless in /etc/nginx/conf.d/MYSITE.conf:27
Nov 07 12:41:14 ip-172-31-81-0 nginx[2957]: nginx: [emerg] unknown directive "set_escape_uri" in /etc/nginx/conf.d/MYSITE.conf:48
השורה העליונה היא רק אזהרה, אז איני מתייחס, ובהמשך אכן רואה שאינה מעכבת.
אני מנסה להזיח את השורה הבעייתית. היא מופיע בתוך קטע שנראה כך:
if ($request_method = PURGE) {
set $stored_method "GET";
set $stored_scheme "https";
set $key "nginx-cache:$stored_scheme$stored_method$host$request_uri";
set_escape_uri $escaped_key $key;
rewrite ^/w/(.*)$ /redis-purge?key=$escaped_key last;
#return 301 /redis-purge?key=$escaped_key;
}
חוזר על האיתחול וכו'. שגיאה זהה רק על שורה אחרת (55) הפעם בתוך בלוק של מודל reis:
location /redis-purge {
auth_basic off;
internal ;
set_unescape_uri $key $arg_key ;
redis2_query del $key;
redis2_pass redis;
more_set_headers 'X-Purge PURGED';
}
שוב מזיח וכו'. הפעם השגיאה:
nginx: [emerg] unknown directive "redis2_query" in /etc/nginx/conf.d/MYSITE.conf:56
לא אלא אתכם בכל הפעולות, כי חזרתי על הצעד הזה כמה עשרות שורות לפחות. אני לא זוכר הכל בעל פה, אבל רובם לפחות היו בבלוקים של redis, ולפחות חלק מהאחרים היו בגלל משתנים לא מזוהים כי הזחתי את השורות שלהם.
אולי היו עוד בלוקים נוספים שהתקילו, אני לא זוכר. אם יש צורך אחזור שוב על הכל כדי לבדוק.
בסוף, אחרי שהזחתי את כל השורות הבעייתיות, השרת עלה. אבל כמובן שהאתר שלי שמסכן התנדף לו כל הקינפוג לא עלה.
הדבר היחיד הרלוונטי שמצאתי בגוגל, היתה התשובה הקצרה הזו שרימז על כך שחסר לי המודול.
בבדיקה שהוצעה שם זו התוצאה אכן:
nginx -V
nginx version: nginx/1.20.1
built with OpenSSL 1.1.1 11 Sep 2018 (running with OpenSSL 1.1.1a 20 Nov 2018)
TLS SNI support enabled
configure arguments: --with-cc-opt='-g -O2 -fdebug-prefix-map=/build/nginx-kLXxPU/nginx-1.20.1=. -fstack-protector-strong -Wformat -Werror=format-security -fPIC -Wdate-time -D_FORTIFY_SOURCE=2' --with-ld-opt='-Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now -fPIC' --prefix=/usr/share/nginx --conf-path=/etc/nginx/nginx.conf --http-log-path=/var/log/nginx/access.log --error-log-path=/var/log/nginx/error.log --lock-path=/var/lock/nginx.lock --pid-path=/run/nginx.pid --modules-path=/usr/lib/nginx/modules --http-client-body-temp-path=/var/lib/nginx/body --http-fastcgi-temp-path=/var/lib/nginx/fastcgi --http-proxy-temp-path=/var/lib/nginx/proxy --http-scgi-temp-path=/var/lib/nginx/scgi --http-uwsgi-temp-path=/var/lib/nginx/uwsgi --with-compat --with-debug --with-pcre-jit --with-http_ssl_module --with-http_stub_status_module --with-http_realip_module --with-http_auth_request_module --with-http_v2_module --with-http_dav_module --with-http_slice_module --with-threads --with-http_addition_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_sub_module
תודה לכם