מדריך: אתרים קטנים וחסכון כספי ניכר (חלק שני)

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

נתחיל בהקמת השרת. השרת יכול להיות כמעט כל מחשב ישן, אולם לפני שאתה ניגש לנער את האבק מהמחשב הענתיקה שלך, כדאי שתיקח בחשבון את הפרט החשוב הבא: למחשבים הישנים יש גם ספקי כח שצורכים די הרבה חשמל והם יצרכו אותו באותו "שרת" 24 שעות, 7 ימים בשבוע, מה שאומר שיש סיכוי לא קטן שחשבון החשמל שלך יגדל. מה אפשרי לעשות? כדאי לחשוב אם להשקיע במחשב בתצורת Mini ITX, מחשבים מבוססים לוח ומעבד של VIA לדוגמא, או לוחות עם מעבד אינטל ATOM והכי חשוב: מארז ITX. אלו מארזים שמגיעים עם ספקי כח חיצוניים קטנטנים ושמשתמשים בהרבה פחות חשמל. מעבד ATOM לדוגמא צורך רק 7 וואט שזו צריכה ממש מזערית מול כל פנטיום 4 או כל מעבד שולחני רגיל. כדאי לשים לב גם לדבר הבא: אותו "שרת" לא הולך לקבל כמויות של מיליוני Hits כך שמעבד ATOM מספיק בהחלט לשרת קטנטן.

לאחר שהמחשב מוכן ומחובר לרשת (חיבור חוטי בלבד), נתקין עליו את הפצת הלינוקס שאנו מעוניינים, וכאן ישנה נקודה חשובה: עדיף להתקין הפצה המוגדרת מראש לעדכונים למשך זמן רב מאשר הפצה שמשתנה כל שנה. במילים אחרות: עדיף Ubuntu LTS או CentOS מאשר Ubuntu רגיל או Fedora או Open SuSE. ההתקנה עצמה צריכה לכלול חלקים שאתם צריכים, בין אם זה שרת MySQL או PostgreSQL, שרת Apache, תמיכת PHP וכו', הכל בהתאם להעדפות ולמה שתריצו על אותו שרת.

ההתקנה עצמה צריכה לכלול חלקים שאתם צריכים, בין אם זה שרת MySQL או PostgreSQL, שרת Apache, תמיכת PHP וכו', הכל בהתאם להעדפות ולמה שתריצו על אותו שרת. אחד ההגדרות הכי חשובות בשרת היא כתובת IP קבועה ולא כתובת IP מה-DHCP שייספק הנתב הביתי שלכם. דבר זה חשוב מאוד ותיכף נגיע אליו. יש להגדיר משתמש רגיל בו ניכנס למערכת על מנת לעבוד ולתחזק את השרת הקטן.

לאחר שההתקנה הסתיימה, נצטרך לבנות או להעביר את התוכן ואפליקציית ה-WEB שלנו. ישנם כאלו שישימו את האתר עצמו במחיצת ברירת המחדל (ב-Centos זה var/www/html/). מומלץ לשים את הדברים במחיצה נפרדת ושונה מההגדרות ברירת המחדל (היכן שתרצו, יש כאלו שישמו ב-opt/, אחרים ישימו ב-home/user/ שלהם, או כל מקום אחר). חשוב שבזמן העברת האפליקציה לשרת, תהיה מחיצת logs ששרת ה-Apache יכתוב לוגים של שגיאות וכניסות אליה. יש לוודא כי ההרשאות למחיצה אינן כתיבה/קריאה/הרצאה לכל העולם ואחותו (777), אלא משהו באזור ה-755 (כתיבה/קריאה/הרצאה לבעלים, השאר קריאה והרצה).

כעת נגדיר לנו שרת וירטואלי בשרת ה-Apache שהוא יהיה זה שיהיה אחראי על האפליקציית Web שלנו. קובץ הקונפיגורציה (נקרא לו לשם הדוגמא web.conf) ישב במחיצה etc/httpd/conf.d/ ב-Centos או etc/apache2/sites-available/ באובונטו). מה יהיה בתוך אותו קובץ? את הטקסט הבא

<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot /var/web/www/myblog
ServerName mydomain.com
ServerAlias www.mydomain.com
ErrorLog /var/web/www/logs/blog-error-log
LogFormat "%h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i"" combined
CustomLog /var/web/www/logs/blog-access_log combined
</VirtualHost>

נעבור על השורות:

  • שורה ראשונה אומרת לשרת הוירטואלי של אפאצ’י להאזין לפורט 80
  • בשורה שניה אנו מגדירים בעצם מי מקבל את הדואר על האתר הזה.
  • שורש שלישית אומרת מהו בעצם מחיצת ה”שורש” שבו תשב אפליקציית ווב או הדפים שלנו
  • שורה רביעית אומרת מה שם ה-Domain שקנינו ואיתו אנו משתמשים
  • שורה חמישית נותנת לנו כינוי נוסף לשרת שלנו (אותו שם עם תוספת WWW בהתחלה)
  • שורה שישית אומרת להיכן יכתבו השגיאות, אם יש.
  • שורה שביעית אומרת איך בעצם יורכב הלוג של הגישה ומה בעצם יכתב באותו לוג מהפרטים שהדפדפנים של הגולשים נותנים בתוספת פרטים כמו שעה, כתובת IP וכו’.
  • שורה שמינית אומרת להיכן יכתב לוג הגישה ובאיזו צורה הוא יכתב
  • שורה תשיעית מסיימת את הגדרות השרת וירטואלי

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

משתמשי אובונטו, לאחר שהגדירו את הקובץ, יצטרכו להוסיף לינק לקובץ אל תוך etc/apache2/sites-enables/

לאחר שהגדרנו את הקובץ, נפעיל את שרת ה-Apache מחדש: service httpd restart ב-CentOS או service apache2 restart באובונטו. לאחר ההפעלה אם לא התקבלו שגיאות בטרמינל, נוכל לבדוק אם יש שגיאות בקובץ ה-Log הראשי של השרת שנמצא ב-var/log/httpd/error_log. סביר להניח שיופיעו שם מס’ אזהרות שונות, אולם אם יש שגיאה שהשרת לא יכל לכתוב או ליצור קבצי Log לדוגמא, יש לתקן את הבעיה ולהפעיל את שרות apache מחדש.

אם לא התקבלו כל שגיאות, הגיע הזמן לנסות לראות אם אנו מצליחים לגלוש לאתר החדש. בתחנה עצמה שאנו עובדים בה אנו צריכים “לתחמן” את התחנה כדי לגלוש: יש לשנות קובץ hosts שיכליל את השורה הבאה:

192.168.1.10         mydomain.com

השורה הזו אומרת למחשב שלנו: אל תחפש באינטרנט מהי הכתובת ל-mydomain.com. מבחינתך הכתובת 192.168.1.10 זה mydomain.com (הכתובת הזו אמורה להיות כתובת ה-IP של השרת שלכם ו-mydomain.com אמור להיות שם הדומיין שרכשתם). בלינוקס הקובץ  הוא etc/hosts/ וב-Windows הקובץ הוא: c:windowssystem32driversetchosts. שנו את הקובץ ושמרו (משתמשי Windows: יש להשתמש בעורך טקסטים כמו Notepad ולהקפיד לבחור “שמור” ולא “שמור בשם”, אחרת העורך יוסיף את הסיומת txt. והקובץ יקרא hosts.txt וזה לא יעבוד).

לאחר ששמרנו, נפתח דפדפן ונגלוש לכתובת שרכשנו וכתבנו ב-hosts לפי השם, כלומר צריך להזין את הכתובת: http://mydomain.com (רק שבמקום mydomain.com יש לרשום את שם הדומיין שרכשתם כמובן). אם הכל תקין, אתם תקבלו בדפדפן את האתר שלכם. ברכותיי, עברתם את החלק העיקרי! תנו לעצמכם טפיחה על השכם!

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

במאמר הקודם המלצתי לפתוח חשבון ב-zoneedit. אם לא פתחתם שם חשבון, פתחו עכשיו והזינו שם את שם המתחם שרכשתם. לאחר ההזנה תקבלו 2 שמות של ns records וכתובת ה-IP שלהם שאותם תצטרכו להזין באתר רישום שם המתחם שרכשתם: היכנסו לאתר שמשם רכשתם את שם המתחם שלכם, וחפשו הגדרות name servers. שנה את הפרטים שם לפי הפרטים שנתן לכם שרת zoneedit. השינוי אמור לחול תוך 24-48 שעות אבל כיום השינוי בד”כ נעשה תוך שעה שעתיים, אם כי יש תמיד שרתים שלוקח להם זמן להתעדכן (עד 48 שעות).

כעת ניכנס שוב ל-zoneedit ונבקש להוסיף A record. ב-zoneedit בחרו את השם מתחם שלכם ובחרו IP Address (האפשרות הראשונה משמאל. השרת מבקש שם וכתובת IP, אנחנו נוותר על השם ונכניס את כתובת ה-IP שספק האינטרנט שלנו נתן לנו. כיצד נדע מהי הכתובת שלנו? פשוט: היכנסו לאתר whatismyip ושם בגדול תופיע לנו כתובת ה-IP שלנו. העתיקו כתובת זו ל-zoneedit לשדה ה-IP ואשרו. zoneedit יבינו לבד שזו כתובת האתר שלכם ויציעו לכם הוספה של www אופציונאלית, כך שגם גלישה עם www תגיע לאתרכם. אשרו זאת. במזל טוב, מעכשיו מי שיגלוש לכתובת התחום שלכם יגיע אל אתרכם (בכפוף לעדכוני ה-DNS שעשיתם אצל רשם שם המתחם שלכם)…

כמעט..

יש מישהו שחוסם את כל העולם ואחותו להנות מזיו אתרכם המדהים, וזהו הראוטר בביתכם שבברירת המחדל שלו חוסם כניסה פנימה להכל. צריך לשנות אותו. פתחו דפדפן, ו”גלשו” לתוך כתובת הראוטר שלכם (זה יכול להיות http://10.0.0.138 או http://192.168.1.1 או http://192.168.2.1 , עיינו בחוברת הראוטר), וחפשו שם פונקציה של Port Forwarding. הפונקציה הזו אומרת לראוטר שמעתה, כל מי שינסה להגיע אל כתובת ה-IP שלכם בפורט 80, יגיע אל השרת הקטן שלכם שמארח את אתרכם. כל מה שיש לעשות הוא להגדיר שם פורט 80 ב-TCP וכתובת היעד היא כתובת ה-IP של השרת שלכם. ב-Linksys זה נראה כך:

firewall-rule לאחר שתגדירו את הפורט, שמרו את ההגדרות. אצל חלק מהראוטרים הם יבקשו להפעיל את עצמם מחדש (כמו ראוטרים של Edimax). אשרו. (עדכון: ראוטרים מסויימים שבזק מוכרים [במיוחד של סימנס] לא יאפשרו למחשבים בתוך הרשת הפנימית הביתית לגלוש לאתר עצמו ובמקום זאת הם יציגו את דף הכניסה לראוטר. במקרים כאלו יש צורך במחשבים הביתיים להגדיר את כתובת ה-IP הפנימית במחשב הגולש ל-IP הפנימי של השרת)

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

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

לשם כך נשתמש בתוכנה על השרת לינוקס הנקראת ddclient. התקינו אותה (apt-get install ddclient באובונטו, yum install ddclient ב-CentOS). לאחר ההתקנה, יש צורך כמשתמש root לערוך את הקובץ etc/ddclient/ddclient.conf/ ושם חפשו את החלק שנקרא ZoneEdit. נשנה אותו לפי הצורך. הנה דוגמא:

##
## ZoneEdit (zoneedit.com)
##
server=www.zoneedit.com,               
protocol=zoneedit1,                    
login=MyUser,          
password=Mypassword
www.mydomain.com, domain.com

נשנה את הפרמטרים בהתאם (שם משתמש, סיסמא, שם תחום) ונפעיל את השרות: service ddclient restart ולאחר מס’ שניות הסקריפט של ddclient יעדכן אוטומטית את zoneedit בכתובת החדשה שברשותנו. ddclient ימשיך לרוץ בשרת ברקע ומדי מס’ דקות הוא יבדוק האם כתובת ה-IP שלנו שונתה או לא. אם כן, הוא יעדכן שוב את zoneedit. אם לא, הוא לא יבצע כלום וימשיך לנטר את הכתובת IP שלנו.

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

עתה מגיע החלק של האזהרות (לא חשבתם שתתחמקו מזה, נכון? 🙂 )

  • לא כולם נחמדים. מהרגע שהאתר שלך פתוח לעולם, יהיו מי שיגלשו וישמחו להפיל לך את האתר, להעתיק את החומר או למחוק את השרת. אינך יודע אף פעם מי הילד המשועמם וחסר חיים שמחפש להפיל את אתרך סתם כך בשביל הכיף. מה שאתה צריך לעשות, הוא לדאוג שרישוי הקבצים הוא מספיק לצרכים של שרת ה-Web שלך ולצרכיך ותו לא. עליך לבדוק מבחינת הקוד שלך שאינך משאיר כל מיני “חורים” שדרכם אפשר להכניס משאית ולהרוס את אתרך.
  • גרפיקה כבדה – לא באתרך. זה מאוד נחמד שאתה רוצה לשתף תמונה של כל ה”משפוחה” בטיול לבניאס עם קבצים בגודל 8 מגהבייט כל תמונה, אבל כך לא רק שהאתר שלך לא יגיב, גם הגלישה שלך תהיה איטית בטירוף. הגלישה באינטרנט בארץ היא אסינכרונית, כלומר כשמישהו גולש לאתר שלך, אתה מפסיד מהירות גלישה. רוצה לשים תמונות גדולות, קבצי פלאש גדולים וכו’? ארח את הקבצים האלו באתר חיצוני (כמו Google Sites) ותן לינק קישור לקובץ שנמצא בחוץ, כך אחרים יוכלו לקבל את הקבצים הגדולים במהירות ואתה לא תסבול מאיטיות.
  • אם רוב הצופים של אתרך הם מחו”ל, הם יקבלו אתר איטי, לפעמים מאוד איטי, כי מה לעשות: שרתים שנמצאים אצל ספק האינטרנט מספקים תעבורה הרבה יותר מהירה מהשרת שלך שנמצא במרתף ושמחובר ל-ADSL. אם רוב הגולשים לאתרך הם מחוץ לישראל, אולי כדאי שתיקח לך חבילת אירוח זולה בחו”ל ותדלג על העניין של שרת בבית.
  • כדאי תמיד להשתמש בדחיסה. אם אתה מפתח את האתר שלך, כדאי לבנות או להשתמש במגנוני Cache או להשתמש בדחיסה (כל הדפדפנים המודרניים תומכים בכך כיום), כך רוחב הפס שיצטרך האתר שלך יופחת משמעותית בהשוואה לגלישה באתר ללא Cache וללא דחיסה.

בהצלחה

Comments

comments

11 תגובות בנושא “מדריך: אתרים קטנים וחסכון כספי ניכר (חלק שני)

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

    לדעתי, אתר על שרת ביתי הוא לא פרקטי:

    1. בעיות תשתית כבליםבזק.
    2. בעיות עם ספק האינטרנט.
    3. הפסקות חשמל.
    4. איטיות. במיוחד שאתה פועל על הרשת באותו הזמן.
    5. איכסון זול יכול לעלות 4$ לחודש. לא עדיף?

    למי שרוצה לנסות, אולי עדיף להוריד כבר VMWare Image מוכן (כמו rPath) ולחסוך המון התקנות. Snapshots יהיה יתרון משמעותי.

    אני רק רוצה להגיד שאני מאוד מעריך את הפוסט המושקע למרות שעשוי להשתמע אחרת.

  2. ובכן טל. אינני יודע אם אתה קורא את הבלוג הזה בקביעות, אך בשנה האחרונה הבלוג הזה נמצא בשרת ליד הרגליים שלי בחיבור ADSL שכולל את שאר המחשבים שלי. למעט בעיה שהיתה לי עם נטויז'ן (עניין של הוראת קבע שלא הועברה נכון וכתוצאה מכך נותקתי ליומיים), לא היו לי כל בעיות עם החיבור והבלוג שלי תמיד היה למעלה. אני לא חווה פה גלישה איטית ואני מוריד קבצים במהירות של עד 600K גם כשאחרים גולשים בבלוג.

    כן, אחסון זול יכול לעלות 4$ בחודש עד שאתה מריץ Process כלשהו שתופס את המעבד ליותר מכמה שניות בניצולת של יותר מ-50-70% ואז מתחילים לנקוט נגדך בצעדים, ובל נשכח: באותו מחיר של 4$ לחודש כולם חוגגים על השרת, כך שאם מישהו מהמנהלים מחליט לעשות STOP לאחד מהשרותים ולהעלות אותו עוד 2 דקות, כל הגולשים שלך אוכלים אותה ואני שבעתי מרורים מכך. אגב, אותם אתרים שמבקשים 4$ לחודש ברוב המקרים גובים תשלום מראש של שנה או יותר.

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

  3. חץ, תודה על הפוסט הזה והקודם,

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

    אגב האתר שלך רץ על שרת פרטי מהבית, זה משונה מדי ??? יש לך כנראה מהירות העלאה גבוה יותר מהסטנדרט או חבילה של 10 מגה, לא ???

  4. לא ידעתי שהאתר הזה מאוחסן על שרת ביתי. אני מופתע לטובה.

    אני מצטרף לשאלה של אפי, האם אתה גולש בחבילת גלישה סטנדארטית (1.5Mb) או מוגדלת?

  5. בקשר להגדרות של apache על ubuntu –

    לאחר יצירת קובץ הקונפיגורציה בetc/apache2/sites-available/ ניתן להריץ את הפקודה sudo a2ensite בשביל להפעיל את האתר – הפקודה הנ"ל מבצעת בשבילך את יצירת הsymlinks והיא הדרך המומלצת לביצוע הפעולה. כמו כן ניתן להשתמש בפקודה sudo a2dissite בשביל להוריד אתר.

    לאחר מכן מספיק לעשות service apache2 reload – זה עושה restart אבל בלי להרוג חיבורים פתוחים (graceful).

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

    האם השרת יכול גם לשמש כשרת ביטרונט ?

  7. יפה ואינפורמטיבי. גם אני אירחתי שרת על מחשב בבית, באותו האופן (רק עם dyndns במקום zoneedit). אני חושב שזה משתלם רק אם יש לך מחשב שגם ככה פתוח 24/7 או ש"במקרה" יש לך מחשב דל הספק בסביבה שמחפש שישתמשו בו 🙂
    אני השתמשתי בפנטיום 4 (שהוא ממש לא דל הספק), ומאז שהעברתי את השרת לאירוח (זול, אבל בחו"ל), אני ממש חוסך כסף. ממש מרגישים את זה בחשבון החשמל.

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

    למרות כל זה – כגיק – לארח שרת בבית – זה כיף 🙂 על זה אין עוררין

  8. תגובה ל-3 ו-4: כן, זו חבילה רגילה של 5 מגה דרך בזק (תשתיות) ונטויז'ן (אינטרנט).

    astupidog – תודה על המידע.

    דב – תוקן, הלינק למעלה. לא, בתור שרת ביטורנט אתה תחנוק לגמרי את הקו שלך.

  9. מאמר יפה.
    רציתי לתקן טעות נפוצה בנושא מעבדי ATOM. המשפחה התחילה עם 2 סדרות מעבדים N ו-Z.
    סדרת Z היא בעלת צריכת הספק נמוכה ומשתלבת עם ערכת השבבים US15. תג מחיר שלה גבוה יחסית בגלל היחודיות במאפייני ההספק וביצועי הגרפיקה. מחשב מושלם עם סדרת Z יצרוך עד 8 וואט (ללא מסך).
    סדרת N היא הנפוצה יותר. זוהי הסדרה שאתה מוצא בנטבוקים ובלוחות ITX לסוגיהם. מערכת שכזו צורכת כ-20W. היצרנים מטעים את הצרכן על ידי ציון הספק המעבד (7W כפי שכתבת).בפועל מה שחשוב הוא הספק כל המערכת.

    ברוב לוחות הITX עם סדרת N יש מאוורר. בלוחות עם סדרה Z אין צורך. כשקונים צריך לבדוק מהו המעבד וערכת השבבים. US15 עובד רק עם סדרה Z. בחישוב צריכת חשמל, הUS15 מחזיר את ההשקעה תוך 2-3 שנים. למחשב 24/7 יותר מהר.

    ואם יורשה לי, יש גם פתרון זעיר מימדים עם Atom-Z כחול-לבן, רק אסור לי לומר את שמו..

  10. לי יש נטבוק עם מעבד N450 ואני מה זה מרוצה ממנו, הוא טוב הרבה יותר מהמחשב הנייח שלי שקניתי ב2003, פנטיום 4 עם מעבד סלרון מחורבן שבקושי זז, שלא לדבר על כמה חלונות פתוחים בו זמנית, ולא לשכוח מדובר במחשב נטבוק בלבד שבקלות מריץ לי גם משחקים כבדים עם גרפיקה מאוד גבוהה

סגור לתגובות.