Масштабируемая конфигурация nginx / Игорь Сысоев (Nginx)
תוכן עניינים:
- תנאים מוקדמים
- שימוש ב- Nginx כפרוקסי הפוך
- כותרות בקשות עוברות
- קביעת התצורה של Nginx כ- Proxy הפוך לשרת שאינו HTTP
- אפשרויות פרוקסי הפוך נפוצות של Nginx
- סיכום
פרוקסי הפוך הוא שירות שלוקח בקשת לקוח, שולח את הבקשה לשרת אחד או יותר, מביא את התגובה ומספק את תגובת השרת ללקוח.
בגלל הביצועים והביצועיות שלה, NGINX משמשת לעתים קרובות כפרוקסי הפוך עבור שרתי HTTP ו- HTTP שאינם. תצורת פרוקסי הפוכה טיפוסית היא להציב את Nginx מול יישומי Node.js, Python או Java.
השימוש ב- Nginx כ- proxy הפוך מעניק לך מספר יתרונות נוספים:
- איזון עומסים - Nginx יכול לבצע איזון עומסים על מנת להפיץ את בקשות הלקוחות על פני שרתים קרובים, מה שמשפר את הביצועים, יכולת ההרחבה והאמינות. זיכרון מטמון - כאשר Nginx הוא פרוקסי הפוך, באפשרותך לשמור במטמון את הגרסאות המוצגות מראש של העמודים כדי להאיץ את זמני טעינת העמודים. זה עובד על ידי מטמון של התוכן שהתקבל מתגובות השרתים המקובלים ושימוש בו כדי להגיב ללקוחות מבלי שיהיה צורך ליצור קשר עם השרת המקורב לאותו תוכן בכל פעם. סיום SSL - Nginx יכול לשמש כנקודת קצה SSL לחיבורים עם הלקוחות. הוא יטפל בפענוח חיבורי SSL נכנסים ויצפין את תגובות השרת המקובלות. דחיסה - אם השרת הממוקם אינו שולח תגובות דחוסות, באפשרותך לקבוע את התצורה של Nginx לדחיסת התגובות לפני שליחתן ללקוחות. הפחתת התקפות DDoS - באפשרותך להגביל את הבקשות הנכנסות ומספר החיבורים לכל כתובת IP יחידה לערך האופייני למשתמשים רגילים. Nginx מאפשרת לך גם לחסום או להגביל את הגישה על סמך מיקום הלקוח, ואת הערך של כותרות הבקשה כגון "User-Agent" ו- "Referer".
מאמר זה מתאר את השלבים הנדרשים להגדרת תצורה של Nginx כ- proxy הפוך.
תנאים מוקדמים
אנו מניחים כי התקנת Nginx בשרת Ubuntu, CentOS או Debian שלך.
שימוש ב- Nginx כפרוקסי הפוך
כדי לקבוע את התצורה של Nginx כ- proxy הפוך לשרת HTTP, פתח את קובץ התצורה של חסימת השרת של התחום וציין מיקום ושרת פרוקסי בתוכו:
server { listen 80; server_name www.example.com example.com; location /app { proxy_pass http://127.0.0.1:8080; } }
כתובת האתר של השרת הממוקמת מוגדרת באמצעות הנחיית
proxy_pass
ויכולה להשתמש ב-
HTTP
או
HTTPS
כפרוטוקול, שם תחום או כתובת IP, ויציאה אופציונלית ו- URI ככתובת.
התצורה שלמעלה מורה ל- Nginx להעביר את כל הבקשות למיקום
/app
לשרת המקובל בכתובת
http://127.0.0.1:8080
.
/etc/nginx/sites-available
, בעוד שהם
/etc/nginx/conf.d
בספריית CentOS בספריית
/etc/nginx/conf.d
.
כדי להמחיש טוב יותר כיצד הנחיות
location
ו-
proxy_pass
עובדות, בוא ניקח את הדוגמה הבאה:
server { listen 80; server_name www.example.com example.com; location /blog { proxy_pass http://node1.com:8000/wordpress/; } }
אם מבקר ניגש אל
http://example.com/blog/my-post
, Nginx ישלח את בקשתה זו אל
http://node1.com:8000/wordpress/my-post
.
כאשר הכתובת של השרת המקושר מכילה URI, (
/wordpress/
), URI של הבקשה המועבר לשרת המקושר מוחלף על ידי URI המצוין בהנחיה. אם הכתובת של השרת המקופח מוגדרת ללא URI, ה- URI המלא לבקשה מועבר לשרת המקורב.
כותרות בקשות עוברות
כאשר Nginx ממלא בקשה לבקשה, היא מגדירה אוטומטית שני שדות כותרת בבקשות פרוקסי מהלקוח,
Host
וחיבור, ומסלקת כותרות ריקות.
Host
מוגדר
$proxy_host
מוגדר לסגירה.
כדי להתאים או להגדיר כותרות לחיבורים פרוקסי, השתמש בהנחיית
proxy_set_header
ולאחריה ערך הכותרת. תוכל למצוא רשימה של כל כותרות הבקשות הזמינות והערכים המותרים בהן כאן. אם ברצונך למנוע העברת כותרת לשרת הפרוקסי, הגדר אותו למחרוזת ריקה
""
.
בדוגמה הבאה אנו משנים את הערך של שדה הכותרת
$host
ומסירים את שדה הכותרת
Accept-Encoding
ידי הגדרת ערכו למחרוזת ריקה.
location / { proxy_set_header Host $host; proxy_set_header Accept-Encoding ""; proxy_pass http://localhost:3000; }
בכל פעם שאתה משנה את קובץ התצורה, עליך להפעיל מחדש את שירות Nginx כדי שהשינויים ייכנסו לתוקף.
קביעת התצורה של Nginx כ- Proxy הפוך לשרת שאינו HTTP
כדי להגדיר את התצורה של Nginx כ- proxy הפוך לשרת שאינו HTTP פרוקסי, באפשרותך להשתמש בהנחיות הבאות:
-
fastcgi_pass
- פרוקסי הפוך לשרת FastCGI.uwsgi_pass
- פרוקסי הפוך לשרת uwsgi.scgi_pass
- פרוקסי הפוך לשרת SCGI.memcached_pass
- פרוקסי הפוך לשרת Memcached.
אחת הדוגמאות הנפוצות ביותר היא להשתמש ב- Nginx כמתנה לאחור ל- PHP-FPM:
server { #… other directives location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/php7.2-fpm.sock; } }
אפשרויות פרוקסי הפוך נפוצות של Nginx
הגשת תוכן באמצעות HTTPS הפכה בסטנדרט בימינו. בחלק זה, אנו נותנים לך דוגמה לתצורת פרוקסי ה- Nginx לאחור של HTTPS כולל הפרמטרים והכותרות המומלצים של פרוקסי Nginx.
location/ { proxy_pass http://127.0.0.1:3000; proxy_http_version 1.1; proxy_cache_bypass $http_upgrade; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-Port $server_port; }
-
proxy_http_version 1.1
- מגדיר את גרסת פרוטוקול HTTP לצורכי פרוקסי, כברירת מחדל היא קבעה 1.0. עבור שקעי רשת וקשריkeepalive
אתה צריך להשתמש בגירסה 1.1.proxy_cache_bypass $http_upgrade
- מגדיר תנאים שבהם התגובה לא תילקח מטמון.Upgrade $http_upgrade
Connection "upgrade"
- שדות כותרות אלה נדרשים אם היישום שלך משתמש ב- Websockets.Host $host
- משתנה$host
בסדר העדיפות הבא מכיל: שם מארח משורת הבקשה, או שםHost
משדה הכותרת של בקשתHost
, או שם השרת התואם לבקשה.X-Real-IP $remote_addr
- מעביר את כתובת ה- IP המרוחקת של המבקר לשרת המקורב.X-Forwarded-For $proxy_add_x_forwarded_for
- רשימה הכוללת את כתובות ה- IP של כל שרת שהלקוח עבר אליו.X-Forwarded-Proto $scheme
- כשמשתמשים בתוך חסימת שרת HTTPS, כל תגובת HTTP מהשרת המקורבן נכתבת מחדש ל-X-Forwarded-Host $host
- מגדיר את המארח המקורי שהתבקש על ידי הלקוח.X-Forwarded-Port $server_port
- מגדיר את היציאה המקורית המבוקשת על ידי הלקוח.
סיכום
למדת כיצד להשתמש ב- Nginx כפרוקסי הפוך. הראינו לכם כיצד להעביר פרמטרים נוספים לשרת ולשנות ולהגדיר שדות כותרת שונים בבקשות פרוקסיד.
nginxיש כמה Tidbits חיוני אתה צריך לדעת לפני שאתה להתחיל את הנתיב אל האנונימיות באינטרנט. ראשית, חשוב לדעת כיצד אנונימיזציה פרוקסי עבודה, כך שתוכל להבין את הפגמים המובנים שלהם. Anonymizers לפעול כאיש באמצע בזמן שאתה גולש באינטרנט, טיפול תקשורת בין המחשב שלך ואת האתר שאתה רוצה לגשת באופן אנונימי. אם אתה עושה הכל נכון, אתר היעד רואה רק מידע מהשירות אנונימיזציה, כך שהוא לא יכול לזהות את כתובת ה- IP הביתית שלך או מידע אישי אחר. [

[קריאה נוספת: כיצד להסיר תוכנות זדוניות ממחשב Windows שלך]
קבע את התצורה של odoo עם nginx כ- proxy הפוך

Odoo מגיע עם שרת אינטרנט מובנה, אך ברוב המקרים מומלץ שיהיה מולו פרוקסי הפוך אשר ישמש כמתווך בין הלקוחות לשרת Odoo. מדריך זה מספק הוראות כיצד להשתמש ב- Nginx כ- proxy הפוך ל- Odoo.
הגדרת התצורה של שגיאת nginx ויומן הגישה

Nginx כותב רשומות של אירועים שלה בשני סוגים של יומנים: יומני גישה ויומני שגיאות. יומני גישה כותבים מידע על בקשות לקוח, ויומני שגיאה כותבים מידע על השרת ובעיות היישום.