סקונילב HTTP -ב םיסמוע ןזאמכ Nginx -ב שמתשהל דציכ


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

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

Nginx טנרטניאה תרש לש םיעוציב רופישו תושקתה ,החטבאל יביטמיטלואה ךירדמה :אורקל ץלמומ

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

:ןה Nginx ידי לע תוכמתנה סמועה ןוזיא תוטיש

    .המ ןמז ךשמב תובקוע תוסנכנ תושקבל הז תרש רוחבל תענמנ ךכבו ,האיגש םע תלשכנ ולש הבוגתה םא (תוינש 10 איה לדחמה תרירב ,רדגומ ןמז ךשמל) לשוככ תרש ןמסל ידכ תוניקת תוקידבב םג תכמות Nginx .רתוי תמ

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

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

    Load Balancer: 192.168.58.7
    Application server 1: 192.168.58.5
    Application server 2: 192.168.58.8
    

    .DNS -ה תורדגהב םיאבה םירבדה תא ףיסונ ,ןיטולחל םושר ןיימודב רבודמש החנהב . tecmintapp.lan ןיימודה תועצמאב םושיי עפומ לכל השיג רדגומ םימושיי תרש לכב

    A Record   		@   		192.168.58.7
    

    .אבה ךרעה םע ,הקידב תורטמל םג חוקלה יבשחמב etc/hosts/ץבוקב שמתשהל ןתינ ,ןיפולחל .IPv4 יכרע קר תולבקמ A

    192.168.58.7  	tecmintapp.lan
    

    סקונילב Nginx -ב םיסמוע ןוזיא תרדגה

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

    $ sudo apt install nginx   [On Debian/Ubuntu]
    $ sudo yum install nginx   [On CentOS/RHEL]   
    

    .(ךתריחבל םש ןת) /etc/nginx/conf.d/loadbalancer.conf םשב תרש תמיסח ץבוק רוצ ,ןכמ רחאל

    $ sudo vi /etc/nginx/conf.d/loadbalancer.conf
    

    .םיסמוע ןוזיא תטיש תרדגומ אלש ןוויכמ robin-robin -כ לדחמה תרירב איה וז הרוצת .האבה הרוצתה תא הכותב קבדהו קתעה ןכמ רחאל

     
    upstream backend {
            server 192.168.58.5;
            server 192.168.58.8;
        }
    	
        server {
            listen      80 default_server;
            listen      [::]:80 default_server;
            server_name tecmintapp.lan;
    
            location / {
    	        proxy_redirect      off;
    	        proxy_set_header    X-Real-IP $remote_addr;
    	        proxy_set_header    X-Forwarded-For $proxy_add_x_forwarded_for;
    	        proxy_set_header    Host $http_host;
    		proxy_pass http://backend;
    	}
    }
    

    .םירישכמ ןיב ללקושמ ןוזיא ןונגנמ תועצמאב םיתרשה ןיב וצפוי תושקבה ,ןכ ומכ .(םיתרש תצובק תרדגהל שמשמ) םרזה תארוהב ,הלימ backend תועצמאב םירשוקמה HTTP -ה יתרשל השקב תרבעהל תשמשמ (הז הרקמב

    האבה הרוצתב שמתשה ,תוחפ יכה רוביחה ןונגנמב שמתשהל ידכ

    upstream backend {
            least_conn;
            server 192.168.58.5;
            server 192.168.58.8;
        }
    

    :ב שמתשה , ip_hash הלעפה לש הדמתה ןונגנמ רשפאל ידכו

    upstream backend {
    	ip_hash;
            server 192.168.58.5;
            server 192.168.58.8;
        }
    

    .192.168.58.8 רובעי 2- ו תושקב 4 וצקוי 192.168.58.5 םימושייה תרשל ,תוחוקלמ תושקב שש שי םא ,האבה הרוצתה תועצמאב .תרש תולוקשמ תועצמאב סמועה ןוזיא תטלחה לע עיפשהל םג לוכי התא

    upstream backend {
            server 192.168.58.5	weight=4;
            server 192.168.58.8;
        }
    

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

    $ sudo nginx -t
    

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

    $ sudo systemctl restart nginx
    $ sudo systemctl enable nginx
    

    סקונילב Nginx לש םיסמוע ןוזיא תקידב

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

    http://tecmintapp.lan
    

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

    .HTTP -ב םיסמוע ןזאמכ Nginx -ב שומישה תודוא Nginx דועיתב ןייע ,ףסונ עדימ תלבקל .הטמלש בושמה ספוט תועצמאב ,םיסמוע ןזאמכ Nginx תקסעה לע דחוימבו ,הז ךירדמ לע ךתעד המ תעדל וננוצרב .סקונילב HTT