ניהול פשוט של מארח וירטואלי עם NGINX Proxy Manager

ניהול פרוקסים ו- מארחים וירטואליים (VHosts) דרך קבצי התצורה של NGINX יכול להיות מעייף ככל שמספר המארחים הוירטואליים והשירותים האינטרנטיים גדל. איך ניתן לפשט את התהליך? ה מנהל פרוקסי NGINX (NPM).

קרא ולמד כיצד ליצור, לנהל ולאבטח מארחים וירטואליים עם ממשק האינטרנט של מנהל הפרוקסי NGINX.

דרישות קדם

השיעור הזה יהיה הדגמה מעשית. אם ברצונך להמשיך, וודא שיש לך את הפריטים הבאים:

הגדרת NGINX Proxy Manager

NGINX Proxy Manager הוא לא חבילה שאתה מתקין על מערכת ההפעלה שלך. במקום זאת, NPM הוא אפליקציה שאתה פותח ב-Docker – ולכן Docker ו-Docker Compose הם דרישות ייחודיות.

עקוב אחר השלבים להתחלת הגדרת NGINX Proxy Manager.

1. התחברו לשרת ה-Linux שלכם דרך SSH או דרך ממשק השולחן אם הוא קיים.

2. צרו ופתחו קובץ YAML בשם docker-compose.yml באמצעות עורך הטקסט המועדף עליכם, כאן נעשה שימוש ב-vi.

vi docker-compose.yml

3. העתיקו והדביקו את הקוד הבא לעורך. הקוד מכיל הוראות להורדה והתקנה של תמונת ה-nginx-proxy-manager העדכנית ביותר. שמרו וסגרו את הקובץ כדי לחזור לשורת הפקודה.

version: '3'
services:
  app:
    image: 'jc21/nginx-proxy-manager:latest'
    restart: unless-stopped #וודא שמנהל הפרוקסי חוסך מתקלות
    ports:
      #אפשר גישה לפורטים הרצויים של המכונה המתאימה ממכונת המארח
      - '80:80'
      - '81:81' #פורט לפאנל הניהול
      - '443:443'
    volumes:
      #ממפה את התיקיות הבאות של המכונה לתיקיות המתאימות במארח
      - ./data:/data
      - ./letsencrypt:/etc/letsencrypt

4. הפעילו את docker-compose כדי להעלות את המכונה ברקע (-d) על פי ההוראות המצוינות.

docker-compose up -d
Running Docker Compose to set up NGINX Proxy Manager container

5. בצעו את הפקודה הבאה כדי לוודא שהמכונה פועלת.

docker ps

תראו תהליך רץ התואם למכונת מנהל הפרוקסי כמו בתמונה למטה אם הכל בסדר.

Listing running Docker containers

גישה לפאנל הניהול

מנהל ה-NGINX Proxy צריך כעת להיות פועל. כעת תוכלו לגשת לפאנל הניהול של NPM כדי לבצע את הגדרת משתמש הניהול הראשונית.

1. פתח את חלון הדפדפן שלך ונווט אל http://<host_ip>:admin-ui-port>. לנוחות, המדריך הזה משתמש ב- localhost המשתמש במקום כתובת IP, כלומר, http://localhost:81, כדי להפעיל את לוח הבקרה המנהל.

2. התחבר עם פרטי הכניסה המשתנים הראשוניים של כתובת האימייל [email protected] והסיסמה changeme.

Logging in for the first time

3. שנה את פרטי המשתמש המשתמש בברירת המחדל כפי שתרצה. המדריך הזה שומר על שם המלא והכינוי ומשנה רק את האימייל ל- [email protected]. לחץ על שמירה כדי לשמור את פרטי המשתמש.

Changing admin user default credentials

4. הקלד סיסמה חדשה עבור המשתמש בשדה "שינוי סיסמה" כפי שמוצג למטה. הקלד סיסמה באורך של שמונה או יותר תווים ולחץ על שמירה.

Changing the default password

אתה צריך לראות את השינויים שביצעת בחשבון המשתמש למטה.

Viewing the user list in NGINX Proxy Manager

הפצת השרת האינטרנטי

עכשיו שביצעת את הגדרת התחלתית, השלב הבא הוא להתחיל שרת אינטרנטי עבור המארח הווירטואלי שלך. עקוב אחר השלבים בסעיף זה כדי להתחיל במהירות שרת אינטרנטי Apache באמצעות Docker Compose.

פתח את קובץ ה- docker-compose.yml שיצרת קודם בעורך הטקסט שלך. הוסף את קטע הקוד הבא לקובץ docker-compose.yml

היתרון של שימוש באותו קובץ הוא שאתה יכול לשנות את הרשת הקיימת של המכשיר על ידי הוספת תקייה מבוססת httpd המורשית בשם app2 במקום ברשת נפרדת.

app2:
    #שם מותאם אישית להפניה פנימית למיכל. משמש לתקשורת בין המיכלים
    image: 'httpd:latest'
    restart: unless-stopped

תוכן הקובץ צריך להיראות כמו בתמונה למטה. שמור את הקובץ וצא מהעורך.

Adding a web server deployment directive

הפעל את docker-compose כדי להעלות את המיכל ברקע (-d).

docker-compose up -d

אתה אמור לקבל משוב דומה לתמונה למטה, שמאשר את יצירת המיכל השני.

Creating and starting the Web server with Docker Compose

יצירת מארח וירטואלי חדש

עכשיו יש לך שירות אינטרנט פעיל. המקטע הזה מטרתו לאפשר גישה לשרת האינטרנט דרך יציאות ה-NGINX Proxy Manager.

1. התחבר ללוח הניהול של NGINX Proxy Manager.

2. לחץ על Hosts —> Proxy Hosts.

Creating a VHOST: Opening the Proxy Host card

3. לחץ על Add Proxy Host כדי להתחיל ביצירת מארח וירטואלי עבור השרת.

Creating a VHOST: Adding a Proxy Host

4. מלא את טופס New Proxy Host עם הפרטים הבאים כדי להגדיר את המארח הווירטואלי.

  • שמות הדומיינים: שמות הדומיינים בהם יהיה נגיש השרת שלך. בדוגמה זו יש שימוש בדומיין testweb.com.
  • שם מארח / כתובת IP לקדימה: שם המארח או כתובת ה-IP של שרת האינטרנט. מכיוון שהמדריך הזה משתמש ב-Docker Compose להגדיר את המיכלים, יש מספיק להשתמש ב־app2. הזינו כל שם שסיפקתם ב־docker-compose.yml.
  • פתח יציאה: היציאה שבה שרת האינטרנט מאזין לבקשות. במקרה זה, יש להשתמש ביציאה 80, שהיא היציאה המוצגת כברירת מחדל עבור מיכלי Apache httpd.
  • חסימת הוטחות נפוצות: כתוספת, פרוקסים הנקבעים באמצעות NPM יכולים לחסום הוטחות נפוצות. הפעילו אפשרות זו.
  • רשימת גישה: רשימות מוגדרות מראש לשליטה בגישה לשרת האינטרנט מאחורי פרוקסי. למדריך זה, השאירו את הבחירה כפומבית כדי לוודא שיש לכם גישה לשרת האינטרנט דרך הפרוקסי.

הטופס במסך שלכם צריך להתאים לצילום המסך למטה. לאחר השלמת הטופס, לחצו על שמירה.

Adding the Proxy Host details

כעת יש לכם מארח פרוקסי אחד ברשימה.

List of proxy hosts

5. לבסוף, נווטו אל כתובת ה-URL של המארח הווירטואלי בטאב או חלון דפדפן חדש. למען הדוגמה, כתובת ה-URL היא http://testweb.com. אם המארח הווירטואלי פועל כראוי, תראו את דף הבית המוגדר כברירת מחדל.

Accessing the Webserver via the Proxy

ספק תעודות SSL

השרת האינטרנט הוצא לפועל ואישרתם שהוא פועל. בנקודה זו, אף על פי שהאתר אינו מסתמך על כרטיס SSL עדיין. בעוד שאתרים פרטיים פנימיים עשויים לעבוד גם בלעדיו, זה אינו יתקבל כאשר מדורגים אתרים ציבוריים.

כדי לוודא שחיבורי האתר שלך מוצפנים, תתקין אישור SSL לשרת הוירטואלי שלך הבא. אל דאגה; תעשה זאת ממנהל ה-NGINX Proxy Manager. אבל כבר עליך לקיים תעודת SSL בפורמט PEM קיימת ומפתח תעודה כקריטריון.

1. לחץ על לשונית "תעודות SSL" בלוח הניהול של NGINX Proxy Manager.

Opening the SSL Certificates tab

2. בפינה הימנית העליונה, לחץ על "הוסף תעודות SSL" —> "מותאם אישית".

Adding a custom SSL certificate

כאלטרנטיבה לתעודה מותאמת אישית, ניתן לבקש תעודת Let’s Encrypt ישירות וברצף על ידי בחירת "Let’s Encrypt". אך, כדי לעשות זאת יש צורך שהאתר ורשומות ה-DNS שלך יהיו ציבוריים. אחרת, תהליך רכישת התעודה ייכשל.

3. מלא את טופס הוספת תעודה מותאמת אישית כדלקמן

  • שם: שם אנושי ידידותי למשתמש עבור התעודה בלוח הניהול. במדריך זה ישמש השם "Testweb Cert".
Provisioning SSL Certificates: Naming the certificate
  • מפתח תעודה: המפתח הזה מגיע עם קובץ התעודה שהפקת לפי המדריך הזה כדרישה.

לחץ על "עיין" ונווט אל קובץ המפתח.

Provisioning SSL Certificates: Selecting the key file

כפל-לחץ על קובץ המפתח. במדריך זה, המפתח של התעודה נקרא "mytesthttpd.key".

Provisioning SSL Certificates: Selecting the key file
  • תעודה: הקובץ עצמו של התעודה, בפורמט .crt או .pem.

לחץ על "עיין" ונווט אל התעודה שלך במעקב הקבצים שלך.

Provisioning SSL Certificates: Selecting the certificate file

כפל-לחץ על קובץ התעודה כדי לפתוח אותו. במדריך זה, הקובץ של המפתח נקרא "mytesthttpd.pem".

Provisioning SSL Certificates: Selecting the certificate file

4. לאחר שמילאת את כל שלושת השדות, הטופס שלך צריך להיראות כמו התמונה למטה. לחץ על שמור כדי לשלוח את התעודה המותאמת.

המדריך הזה לא משתמש בתעודה אמצעית. התעלם מהשדה הזה כעת.

Saving the SSL certificate

5. עכשיו, לחץ על מארחים —> מארחי פרוקסי.

Provisioning SSL Certificates: Applying the certificate to a Proxy Host

6. לחץ על סמל תפריט הקבב ולחץ על עריכה. שים לב שבעמוד זה בעמוד SSL כרגע כתוב רק HTTP בעמודה.

Editing a proxy Host

7. בחר את לשונית ה-SSL בחלון עריכת מארח פרוקסי כפי שמוצג למטה. בחר את התעודה שהפקת בתפריט הנפתח מתחת לתעודת SSL. למדריך זה, זו התעודה בשם Testweb Cert כפי שנראה בתמונה למטה.

Selecting a certificate for a Proxy Host

8. בחר את התעודה שהוספת מראש מתוך תפריט הנפתח מתחת לתעודת SSL. כפי שתראה למטה, שם התעודה לבחירה הוא Testweb Cert.

Selecting a certificate for a Proxy Host

9. הפעל את כל האפשרויות המוגברות של SSL הזמינות, כפי שמוצג בתמונה למטה, ולחץ על שמור.

אפשרות Force SSL תכפה או תשדרג את כל החיבורים ל-HTTPS גם כאשר הלקוח בתחילה ניסה לגשת ל-URL של HTTP בלבד.

Enabling enhanced SSL features

A word of warning with HSTS. As browsers will include the site on an internal inclusion list, your site will no longer work under non-SSL conditions. Therefore, make sure that you have everything set up the correct way first.

תראה שערך העמודה של SSL השתנה מ-HTTP בלבד למותאם אישית.

Confirming changes in the SSL setting for a Proxy Host

10. לבסוף, פתח לשונית דפדפן ונווט שוב לדומיין המארח הווירטואלי שלך. למדריך זה, זהו http://testweb.com. החיבור צריך לשדרג אוטומטית ל-HTTPS.

Testing HTTPS access with a browser

ברכותינו! השלמת את ההטמעה או את המארח הווירטואלי המאובטח באמצעות NGINX Proxy Manager.

הוספת משתמשים לניהול פרוקסי NGINX

אם אתה עובד עם צוות או מצפה ממישהו אחר לנהל את המארחים הווירטואליים ב־NPM, עליך לספק גישה למשתמש. במקטע זה, תרחיב על ניהול ה־NPM, במיוחד בסביבת צוות, על ידי יצירת משתמש והקצאת תפקידים והרשאות.

1. לחץ על משתמשים בדף הבית של לוח הבקרה המנהל.

Extending NPM with Users: Opening the Users tab

2. לחץ על הוסף משתמש בפינה הימנית העליונה של כרטיס משתמשים.

Adding a user

3. הקלד את השם המלא של המשתמש (משתמש בדיקה), שם כנוי (testuser) וכתובת הדוא"ל ([email protected]) בשדות המתאימים ולחץ על שמירה.

המשתמש שאתה יוצר לא יהיה מנהל מלא, אז אל תפעיל את תפקיד המנהל. במקום זאת, יש לך בתכנית להקצות הרשאות מותאמות אישית. לחץ על שמירה כדי להוסיף את המשתמש החדש.

Adding user particulars

4. הגדר את ההרשאות שברצונך להעניק למשתמש. במדריך זה, למשתמש החדש יהיו הגדרות הרשאות אלו.

  • יכול להציג רק פריטים שנוצרו על ידי המשתמש.
  • יכול ליצור, לערוך ולמחוק מארחי פרוקסי.
  • יכול ליצור, לערוך ולמחוק מארחי הפניה.
  • אינו יכול לראות מארחי 404.
  • אינו יכול לראות זרמים.
  • יכול להציג רשימות גישה.
  • יכול ליצור, לערוך ולמחוק תעודות SSL.

הסט הרשאות צריך להיראות דומה לתמונה למטה. לחץ על שמירה כדי לסיים את הוספת המשתמש החדש.

Saving the user’s permissions

5. כעת, לחץ על תפריט הקבב של המשתמש החדש ולחץ על היכנס כמשתמש. שלב זה יחליף את ההקשר הנוכחי של המשתמש למשתמש בדיקה.

Signing in as the new user

6. חקור את לוח הבקרה מנקודת מבטה של משתמש חדש. על פי ההרשאות של משתמש זה, אתה צפה לראות פחות לשוניות ומשאבים.

Confirming access permissions

מסקנה

ברכות על השלמת המדריך של מנהל הפרוקסי של NGINX. למדת לנהל מארחים וירטואליים ולאפשר שיתוף פעולה על ידי יצירת משתמשים מהממשק הגרפי! האם אתה חושב שאי פעם תחזור לניהול מארחים וירטואליים של NGINX דרך עריכת קבצי התצורה הידנית?

כאן רעיון לבחינת הלמידה שלך עוד יותר. למה לא לקרוא עוד על איך לשרת תת-דומיינים או דומיינים מרובים של NGINX. אך במקום לעקוב אחר הגדרות הידניות, החל את מה שלמדת והטמן והגדר את המארחים הווירטואליים באמצעות מנהל הפרוקסי של NGINX.

Source:
https://adamtheautomator.com/nginx-proxy-manager/