כמה שירותים מאחורי שרת אחד עם Nginx Proxy Manager
כשמריצים על שרת אחד יותר מפרויקט אחד, במוקדם או במאוחר נתקלים בפורטים 80 ו-443, שרק תהליך אחד יכול להאזין להם. מאמר ב-Habr מהבלוג של Selectel מראה צעד אחר צעד איך לפתור את זה עם Nginx Proxy Manager.
הכותב מסביר קודם את הבעיה: פורטים מוגנים, הכלל של מאזין אחד לכל פורט, בעיות CORS כשהפרונטנד והבאקנד מופרדים בפורטים שונים, והעדר HTTPS. פרוקסי הפוך פותר זאת כמתווך, ומנתב את התעבורה לפי דומיין ונתיב. יתרון נוסף הוא שחומת האש צריכה רק את הפורטים 22, 80 ו-443 פתוחים.
סביבת הבדיקה היא VDS עם 2 vCPU, 2 ג'יגה-בייט RAM ו-40 ג'יגה-בייט NVMe, עם Ubuntu 24.04 ו-Docker מהמאגר הרשמי. הרשת נוצרת עם docker network create proxy, ואז עולה הקונטיינר jc21/nginx-proxy-manager עם נפחים לנתונים ולתעודות. אהבתי שממשק הניהול בפורט 81 קשור רק ל-127.0.0.1 ונגישים אליו דרך מנהרת SSH.
אחר כך מוגדר מארח פרוקסי: בשדה Forward Hostname נכתב שם הקונטיינר, ותעודת ה-SSL מקושרת בלשונית SSL. לבדיקה משתמשים ב-traefik/whoami. גם המקרה שבו היישום רץ ישירות על המארח מטופל בנפרד: כתובת ה-gateway של רשת Docker מתקבלת עם docker network inspect, וחומת האש מוגדרת כך שלא ניתן להגיע ליישום בעקיפת הפרוקסי.
יש גם הערות. הדוגמאות מערבבות דומיינים שונים, והאימג' משתמש בתג latest, מה שעלול לפגוע בשחזוריות עם הזמן. עם זאת, זו נקודת פתיחה טובה למי שרוצה להריץ כמה שירותים בבית או על VDS בלי לערוך ידנית קונפיגורציות של nginx.
מקור: Habr (הבלוג של Selectel)
הכותב מסביר קודם את הבעיה: פורטים מוגנים, הכלל של מאזין אחד לכל פורט, בעיות CORS כשהפרונטנד והבאקנד מופרדים בפורטים שונים, והעדר HTTPS. פרוקסי הפוך פותר זאת כמתווך, ומנתב את התעבורה לפי דומיין ונתיב. יתרון נוסף הוא שחומת האש צריכה רק את הפורטים 22, 80 ו-443 פתוחים.
סביבת הבדיקה היא VDS עם 2 vCPU, 2 ג'יגה-בייט RAM ו-40 ג'יגה-בייט NVMe, עם Ubuntu 24.04 ו-Docker מהמאגר הרשמי. הרשת נוצרת עם docker network create proxy, ואז עולה הקונטיינר jc21/nginx-proxy-manager עם נפחים לנתונים ולתעודות. אהבתי שממשק הניהול בפורט 81 קשור רק ל-127.0.0.1 ונגישים אליו דרך מנהרת SSH.
אחר כך מוגדר מארח פרוקסי: בשדה Forward Hostname נכתב שם הקונטיינר, ותעודת ה-SSL מקושרת בלשונית SSL. לבדיקה משתמשים ב-traefik/whoami. גם המקרה שבו היישום רץ ישירות על המארח מטופל בנפרד: כתובת ה-gateway של רשת Docker מתקבלת עם docker network inspect, וחומת האש מוגדרת כך שלא ניתן להגיע ליישום בעקיפת הפרוקסי.
יש גם הערות. הדוגמאות מערבבות דומיינים שונים, והאימג' משתמש בתג latest, מה שעלול לפגוע בשחזוריות עם הזמן. עם זאת, זו נקודת פתיחה טובה למי שרוצה להריץ כמה שירותים בבית או על VDS בלי לערוך ידנית קונפיגורציות של nginx.
מקור: Habr (הבלוג של Selectel)
תגובות 0
הניחו את התגובה הראשונה, בכל שפה.
התחברו כדי להגיב