כיצד להתקין שרת אינטרנט עם Nginx + MySQL + PHP5 + APC + Spawn_FastCGI [חלק שני: Nginx]

לפני כמה זמן סיפרתי לך על סדרת ההדרכות הזו, כיצד להתקין ולהגדיר תצורה של שרת לאירוח ביקוש גבוה. מאמר זה יעסוק בהתקנה ותצורה של Nginx:

nginx:

כבר סיפרנו לך על Nginx מוקדם יותר במאמר Nginx: אלטרנטיבה מעניינת לאפאצ'ישם אנו אומרים לך שמדובר בשרת אינטרנט כמו אפאצ'י, LightHttpd או צ'ירוקי, אך בהשוואה לאפאצ'י הוא בולט בביצועים ובצריכת חומרה נמוכה, בדיוק מסיבה זו אתרים גדולים רבים כמו פייסבוק, MyOpera.com, DropBox או אפילו WordPress .com להשתמש ב- Nginx במקום ב- Apache. בעולם של לינוקס היות ולינוקס היא לא היחידה שמשתמשת ב- Nginx, ככל הידוע לי, emsLinux ו- MuyLinux משתמשים בה גם 🙂

הניסיון האישי שלי עם Nginx נמשך מספר שנים, כאשר מתוך כורח התחלתי לחפש אלטרנטיבות קלות לאפאצ'י. באותה תקופה Nginx הייתה בגרסה 0.6 והתאימות שלה לאתרי ביקוש גבוה המיוצרים ב- PHP לא הייתה האופטימלית ביותר, אולם כיום מגרסה 0.9 ואילך (v1.2.1 זמין ב- Debian Stable, v1.4.2 זמין ב- ArchLinux) השתפר מאוד עד כדי כך שעם תצורה נכונה ואיחוד של Nginx + PHP הכל יעבוד כמו קסם.

בסדרת הדרכה זו אשתמש בגרסת Nginx 1.2.1-2.2, זמין במאגרי ה- Debian Stable (Wheezy).

הדרכה זו עוסקת אך ורק בנוגע ל- Nginx, לא ל- Nginx + PHP, האיחוד של Nginx + PHP, כמו גם האופטימיזציה או התצורה הנחוצה שלו יטופלו ב ההדרכה הבאה

1. התקנה:

נתחיל מהדבר הראשון, להתקין את Nginx מהמאגרים שלנו.

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

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

aptitude install nginx

aptitude אינו מותקן כברירת מחדל באובונטו, אולם אני ממליץ להתקין אותו ולהשתמש בו במקום apt-get, מכיוון ש aptitude עושה ניהול טוב יותר של תלות במקרים מסוימים

במקרה שאתה משתמש בהפצה אחרת בשרת שלך כגון CentOS, Red Hat, Fedora, פשוט התקן את החבילה: nginx מהמאגר הרשמי

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

2. תצורה:

כבר התקנו את Nginx, אך ברור שעלינו להגדיר אותו. הכנתי קובץ דחוס ב- FTP שמכיל את כל התצורות המשמשות בשרתי DesdeLinux, הן עבור PHP, Nginx וכו '. בואו נוריד ונפתח את הקובץ:

cd ~ && wget http://ftp.desdelinux.net/nginx-spawn-fastcgi.tar.gz && tar xf nginx-spawn-fastcgi.tar.gz

זה ייצור תיקייה בשם nginx-spawn-fastcgi, ממנה נצטרך שני קבצים עבור Nginx טהור (כלומר מבלי לקשר אותה ל- PHP):

  • nginx.conf - »קובץ תצורה ראשי של Nginx (נדבר על תוכנו בהמשך)
  • index.html - »קובץ HTML פשוט בו נשתמש כדי לראות אם Nginx באמת עובדת עבורנו בצורה הבסיסית ביותר שלה
  • mywebsite.net - »קובץ תצורה לאתר פשוט, VHost (מארח וירטואלי) שיגדיר את הגישה ל- html הקודם

בואו נעבור תחילה לתיקיית ההגדרות של Nginx:

cd /etc/nginx/

אז בואו נסיר את תצורת ברירת המחדל שלה ונשים משלנו:

mv nginx.conf nginx.conf_BK && cp ~/nginx-spawn-fastcgi/nginx.conf ./

זה, כאמור, הוא קובץ התצורה הראשי של Nginx, בו כבר הגדרתי את הדברים הבאים:

משתמש www-data; עובד_עבודות 4; pid /var/run/nginx.pid;

גישת משתמשים למערכת הקבצים (שאיתה nginx תיכנס לכל מקום), מספר תהליכים לעבוד איתם וגם ה- PID (מזהה התהליך nginx).

יש לנו גם בלוק קטן שנקרא אירועים (הגדרות לאירועים) המכיל שורה המציינת את מספר החיבורים המרבי המותר לכל אירוע. להלן הבלוק שנקרא http.

בלוק http זה הוא המכיל כמעט כל מה שקשור לאירוח, לפחות הרבה דברים שיעניינו אתכם. לדוגמה, הזמן המרבי לחיות או להמתין (פסק זמן), היכן יהיו היומנים הכלליים שלנו (access.log ו- error.log), דחיסת נתונים באמצעות gzip, כמו גם כללים אחרים שיכולים להיות שימושיים בעתיד.

לאחר שקובץ התצורה הראשי נמצא במקום, הבה נעתיק את הקובץ מ- VHost לתיקיה הזמינה באתרים

cp ~/nginx-spawn-fastcgi/mywebsite.net sites-available/

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

ln -s /etc/nginx/sites-available/mywebsite.net /etc/nginx/sites-enabled/

אני מסביר את התועלת שיש בהפעלת אתרים ואתרים זמינים.

הם ימצאו רגעים שבהם הם חייבים להכין מספר קבצי vhost מוכנים ומוגדרים, מכיוון שבשרת זה הם ישימו ברשת, נניח 5 אתרים. עם זאת, קורה שזה עדיין לא הזמן לאפשר 2 מתוך 5 הוסטים האלה, אך עליהם להיות קבצים מוכנים כך שבמידת הצורך הם יהיו מקוונים בזמן הקצר ביותר האפשרי. הם יכולים להכניס כמה אירוח שהם רוצים שהם באתרים זמינים, מכיוון שאלה ש- Nginx קוראת כדי להעלות לרשת הם רק אלה של אתרים המופעלים, זה גם יעבוד בכיוון ההפוך, למקרה שהם רוצים להציב במצב לא מקוון (באופן זמני עבור לדוגמא) אתר, אין צורך למחוק קבצים מהשרת שלך (קבצים שנצטרך במועד אחר), אנו פשוט מסירים את הקישור הסמלי של מופעלת אתרים וזהו. התועלת שיש בקישורים סימבוליים ולא פשוט להעתיק את הקובץ מתיקיה אחת לאחרת, היא שכאשר אנו רוצים לערוך vhost, אין זה משנה אם אנו עורכים את התיקייה שנמצאת בתפריט זמין או זמין, בסופו של דבר זה אותו דבר.
ארכיון.

הקובץ mywebsite.net כפי שאמרתי קודם, vhost המשמש דוגמה, כלומר, ובמילים אחרות, עלינו לשנות את mywebsite.net ולקבוע את התצורות שלנו.

עלינו לשנות את הדברים הבאים:

  • access_log (שורה 3): זה יהיה הנתיב של קובץ יומן הגישה לאתר זה
  • error_log (שורה 4): זה יהיה הנתיב של קובץ יומן השגיאות לאתר זה
  • server_name (שורה 5): כתובת ה- URL, התחום שמתארח באותה תיקיה, למשל, אם זה היה פורום FromLinux זה יהיה: server_name forum.fromlinux.net
  • שורש (שורה 6): הנתיב לתיקייה בה נמצאים קבצי ה- HTML, בואו להשאיר את זה ב- / var / www / מכיוון שזה יהיה רק ​​מבחן
ברור שהם חייבים לציין ברשומות ה- DNS שלהם של ספק האירוח שלהם (באמצעות CPanel או כלי אחר) שהדומיין או תת-הדומיין המוצהרים ב- server_name ממוקמים ב- IP של שרת זה שהם מגדירים. כלומר, ב- DNS שבו הם יוצרים תת-דומיינים עבור הדומיין שלהם, עליהם להצהיר כי הדומיין או תת-הדומיין שהם הכניסו בשורה 5 נמצאים בשרת זה (שרת זה = כתובת ה- IP של השרת המדובר)

עכשיו אנחנו רק צריכים להעתיק את קובץ ה- html לתיקייה שאנחנו מגדירים בקובץ VHost שלנו, / var / www /:

mkdir /var/www/ && cp ~/nginx-spawn-fastcgi/index.html /var/www/

ואז אנו מפעילים מחדש את Nginx וזהו:

service nginx restart

וואלה, משהו כזה יופיע:

nginx-pure-test-site-html

 

אני מזכיר לך שאנחנו עובדים תחילה עם Nginx עבור HTML, מבלי שיהיה לנו תמיכה ב- PHP, זה להתקין PHP ולקשר אותו ל- Nginx יהיה תוכן ההדרכה הבאה (בעוד כמה ימים, אני מבטיח).

בכל מקרה, זהו מדריך ההתקנה והתצורה של Nginx כך שהוא יעבוד טהור, כלומר אתר HTML, אני מקווה שתמצא אותו מעניין.

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

לגבי


תוכן המאמר עומד בעקרונותינו של אתיקה עריכתית. כדי לדווח על שגיאה לחץ כאן.

26 תגובות, השאר את שלך

השאירו את התגובה שלכם

כתובת הדוא"ל שלך לא תפורסם. שדות חובה מסומנים *

*

*

  1. אחראי לנתונים: מיגל אנחל גטון
  2. מטרת הנתונים: בקרת ספאם, ניהול תגובות.
  3. לגיטימציה: הסכמתך
  4. מסירת הנתונים: הנתונים לא יועברו לצדדים שלישיים אלא בהתחייבות חוקית.
  5. אחסון נתונים: מסד נתונים המתארח על ידי Occentus Networks (EU)
  6. זכויות: בכל עת תוכל להגביל, לשחזר ולמחוק את המידע שלך.

  1.   נלסון דיג'ו

    תודה, מועיל מאוד!

    1.    KZKG ^ גאארה דיג'ו

      תודה על התגובה

  2.   מטלטל דיג'ו

    בספורט האחורי יש nginx 1.4 ..

    1.    KZKG ^ גאארה דיג'ו

      כן, אבל בשרת בייצור אני לא משתמש בכל זה of

      1.    מטלטל דיג'ו

        ב"זה "אתה מתכוון לגרסה היציבה והבדיקה האחרונה ששוחררה על ידי nginx, אתה גורם לה להישמע כאילו היא מתכווננת מהצד. ~ _ ~

        1.    KZKG ^ גאארה דיג'ו

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

      2.    רפאל קסטרו דיג'ו

        תמיד יציב בשרתים, למדתי את זה לפני שנים.

        1.    מטלטל דיג'ו

          Nginx 1.4 יציב מאז אפריל האחרון, בספורט האחורי הוא 1.4.1-3.

          2013-04-24

          גרסה יציבה nginx-1.4.0 שוחררה, המשלבת תכונות חדשות רבות שפותחו בענף 1.3.x - תמיכה בשרת proxying של חיבורי WebSocket, הידוק OCSP, מודול SPDY, פילטר gunzip ועוד

          http://nginx.org/en/CHANGES-1.4

          1.    רפאל קסטרו דיג'ו

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

  3.   צ'ינולוקו דיג'ו

    תודה ששיתפת, כרגע אני מבצע את ההודעה העתיקה ביותר שלך.
    אני הולך למלא אותך בשאלות XD

    1.    KZKG ^ גאארה דיג'ו

      תודה שקראת reading
      כל ספק או שאלה שאתה מכיר, אנחנו כאן כדי לעזור, שם יש לך את forum.desdelinux.net שבו יחד ננסה לתת לך את הפיתרון הטוב ביותר

      לגבי

      1.    גיבראן בררה דיג'ו

        יש לי שאלה שיש לי LAMP [Linux (Debian Wheezy), Apache, PHP ו- MySQL] הפועלים על השרת שלי עבור WordPress ו- Owncloud, איך אני עובר ל- Ngnix, שאלה אחרת היא מה ההבדל בין Ngnix ל- Lighttpd.

        1.    KZKG ^ גאארה דיג'ו

          הסיבוך או הקושי הגדול ביותר לעבור מאפצ'י ל- Nginx הם התצורות של כל אתר, כלומר ספציפית ה- .htaccess בו אתה משתמש.

          ה- .htaccess הוא המורכב ביותר בעת מעבר ל- Nginx, מכיוון שהם תצורות שונות שעליך להכניס ל- Nginx VHost.

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

  4.   אליוטיים 3000 דיג'ו

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

  5.   מאוריציוס דיג'ו

    אני מחכה לטיפים כדי לייעל יותר ל- nginx 😀

    אגב Gaara, תוכלו לכלול בהדרכה הבאה שלכם, כיצד ליישם תמיכה ב- SSL.

    ברכות.

    1.    KZKG ^ גאארה דיג'ו

      הטיפים שמגיעים הם למעשה לייעל את עיבוד ה- PHP, את המטמון לאתרים, אני יכול לשים דוגמה לתצורה בה אנו משתמשים ב- FromLinux עבור Nginx + Wordpress + W3_Total_Cache 🙂

  6.   קֵיסָר דיג'ו

    תודה תרומה טובה.

  7.   Apr4xas דיג'ו

    והמדריך לארכלינוקס מתי? xD

    1.    KZKG ^ גאארה דיג'ו

      ב- Arch זה היה דומה מאוד, רק שמות החבילות משתנים אבל ... ה- conf כמעט זהה

      אבל למי יש שרת ייצור עם Arch? 😀

  8.   Apr4xas דיג'ו

    שלום שם,

    זה אני שוב xD ...

    עקבתי אחר צעדיך ליישם אותם על מכונה עם archlinux ויש לי את הבעיה הבאה:

    [abr4xas@Genius www]$ systemctl status nginx.service
    nginx.service - A high performance web server and a reverse proxy server
    Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled)
    Active: failed (Result: exit-code) since vie 2013-11-15 20:11:35 VET; 1min 13s ago
    Process: 1258 ExecStartPre=/usr/bin/nginx -t -q -g pid /run/nginx.pid; daemon on; master_process on; (code=exited, status=1/FAILURE)

    כל הצעה 😀

  9.   ריז דיג'ו

    ג'ו ... xox, אני רוצה רק שרת פנימי, כלומר אני רק רוצה להחליף את xampp, האם עלי לעשות את כל זה?

    1.    KZKG ^ גאארה דיג'ו

      אם אתה רוצה תוכל ליישם את זה (שאני חוזר ואומר, זה מה ש- DL עובד איתו), למעשה השרת הווירטואלי שלי (שבו אני משתמש לפיתוח ובדיקה) אני עושה את זה עם אותו מה שאני מסביר.

      כלומר, אתה יכול להסיר את XAMPP ולשים גרסה זו וזה יעבוד בסדר, או אם אתה רוצה לעזוב את XAMPP ... זה עדיין יעבוד בשבילך.

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

  10.   יצחק דיג'ו

    כבר פועל שרת הלינוקס שלי (דביאן, Nginx, MySQL ו- PHP) היה לי קשה לגרום ל- PHP לעבוד עם Nginx כי הייתי רגיל לשרת האינטרנט הפשוט של אפאצ'י.

    ובכן השאלה שלי היא: האם מישהו יודע כיצד אוכל לכוון תחום בדיקה שקניתי לשרת שלי? ברצוני לנסות את הדומיין .com שלי כדי לראות כיצד הוא עובד, אך אין לי שמץ של מושג כיצד לעשות זאת, מכיוון שתמיד השתמשתי בכתובת NOIP כדי לגשת אליו באמצעות ה- DUC של noip.

    אני מקווה שמישהו יכול לעזור לי, תודה!

  11.   אברהם דיג'ו

    אני מקבל את זה כשמנסים להתחבר ל- ftp שלך:

    cd ~ && wget http://ftp.desdelinux.net/nginx-spawn-fastcgi.tar.gz && tar xf nginx-spawn-fastcgi.tar.gz

    בקשת HTTP נשלחה, ממתינה לתגובה ... 404 לא נמצא
    2015-11-23 17:46:30 שגיאה 404: לא נמצא.

  12.   ריאן דיג'ו

    יש לי שרת CentOS שלי פועל (Gunicorn, Nginx, PHP) לקח לי המון עבודה כדי לגרום להם לעבוד אבל הנקודה בה נתקעתי היא שדף האינטרנט שאני רוצה להפעיל צריך את התצורה של ספק הדומיין במקרה זה Go Daddy , אז בשלב זה אני לא יודע להמשיך.

  13.   ריקרדו דיג'ו

    האם תוכל לשתף איתי את קבצי התצורה מכיוון שאני לא יכול להוריד אותם בבקשה