NGINX -ב ןכות ןומטמ רומשל דציכ


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

.רתויב לודגה CDN -מ המכ הליעפמ NGINX .(CDN) ןכות תריסמ תותשר רובע הצק יתרש תריציל םגו Upstream יתרשמ ןומטמ תובוגתל הרוצתה תרדגה ידי לע ימוקמה רוקמה יתרש תא ץיאהל ידכ NGINX -ב שמתשהל ןתינ

:NGINX ,ןומטמכ רדגומ רשאכ

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

    :Nginx תנקתהל םיאבה םיכירדמה יפל לעפ אל םא ,ךלש Linux תרשב NGINX תא ןיקתהל ךירצ התא

      Nginx -ב יטטס ןכות ןומטמ

      .JavaScript יצבקו CSS יצבק ;םיכמסמ ,ואדיו יעטק ,תונומת ןוגכ םיצבק תוללוכ יטטס ןכותל תואמגוד .םידומעה ןיב (הנתשמ אל) ההז ראשנש רתא לש ןכות אוה יטטס ןכות

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

      .ךרוצה יפל םירחא םיביתנ תומשב םייוניש עצבו ךלש רתאה םש לש URL -ה תבותכב www.example.com תא ףלחה טושפ ,הבוט ךרד איה האבה המגודה תרוצת

      server {
          # substitute your web server's URL for www.example.com
          server_name www.example.com;
          root /var/www/example.com/htdocs;
          index index.php;
      
          access_log /var/log/nginx/example.com.access.log;
          error_log /var/log/nginx/example.com.error.log;
      
          location / {
              try_files $uri $uri/ /index.php?$args;
          }
      
          location ~ .php$ {
              try_files $uri =404;
              include fastcgi_params;
              # substitute the socket, or address and port, of your WordPress server
              fastcgi_pass unix:/var/run/php5-fpm.sock;
              #fastcgi_pass 127.0.0.1:9000;
       	}   
      
          location ~* .(ogg|ogv|svg|svgz|eot|otf|woff|mp4|ttf|css|rss|atom|js|jpg
                        |jpeg|gif|png|ico|zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|tar|mid
                        |midi|wav|bmp|rtf)$ {
              expires max;
              log_not_found off;
              access_log off;
          }
      }
      

      Nginx -ב ימניד ןכות ןומטמ

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

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

      # chown nginx:nginx /var/cache/nginx
      

      .ןלהל ףיעסב Nginx -ב ימניד ןכות ליעפהל דציכ תוארל ידכ האלה ךשמה

      NGINX -ב FastCGI ןומטמ תלעפה

      FastCGI (וא FCGI) ומכ םייביטקארטניא םימושיי קשממל בחרנ שומישב אצמנש לוקוטורפ אוה PHP ןוגכ טנרטניא יתרש םע NGINX. לש הבחרה והז CGI (ףתושמ רעש קשממ).

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

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

      .ןומטמל (השקב ההזמ) חתפמ רידגמה fastcgi_cache_key תא ףיסוהל םג ןתינ .NGINX לש הרוצתה הנבמ ךותב ,הנוילעה המרב http {} רשקהב fastcgi_cache_path ם

      .םיגאב רותיא תורטמל ישומיש הז - http {} רשקהה ךותב add_header X-Cache-Status היחנהה תא ףסוה ,םרזה הלעמב ןומטמה בצמ תא אורקל ידכ ,הזמ ץוח

      .ץבוקה שארב תואבה תורושה תא ףסוהו הכירעה ץבוק תא חתפ ,(ויתורזגנו וטנובוא תחת) etc/nginx/sites-available/testapp.conf/ וא etc/nginx/conf.d/testapp.conf/ תבותכב אצמנ ךלש רתאה לש תרשה קולב לש

      fastcgi_cache_path /var/cache/nginx levels=1:2 keys_zone=CACHEZONE:10m; inactive=60m max_size=40m;
      fastcgi_cache_key "$scheme$request_method$host$request_uri";
      add_header X-Cache $upstream_cache_status;
      

      :םהש םירטמרפה רפסמ תא תנייצמ fastcgi_cache_path היחנהה

        .ןלהל םיראותמ fastcgi_cache_key תארוהב םינתשמה

        NGINX ןומטמב הבוגתב חתפמל ההז תויהל תבייח השקבה ,חוקלל ןומטמב הבוגת חולשל ידכ ,ןייצל בושח .השקב לש (ההזמ) חתפמה בושיחב םהב תשמתשמ.

          .םירחאה םיכמתנה םיכרעהמ דחא לכ וא (ןומטמהמ תשגומה הבוגת) HIT וא (םימושייה תרשמ הלביק ,ןומטמב האצמנ אלש הבוגת) MISS ב רבודמ םא ןיב ,ביגמ NGINX הילא השקב לכ רובע בשוחמ add_header X-Cache-Sta

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

          .גצומש יפכ fastcgi_cache_valid היחנהה תועצמאב תונוש תובוגתל ןומטמב ןוסחא ןמז םג רדגה

          fastcgi_cache CACHEZONE;
          fastcgi_cache_valid  60m;
          

          :(הבוגת דוק לכל) ןהשלכ תובוגתב שמתשהל וא שרופמב תובוגתה תא ןייצל םג לכות ךא .ןומטמב רמשנ תובוגת 302- ו 301 ,200 קר ןומטמה ,ונלש הרקמכ רדגומ ןומטמה ןמז קר םא

          fastcgi_cache CACHEZONE;
          fastcgi_cache_valid 200  301 203 60m;
          fastcgi_cache_valid 404 10m;
          OR
          fastcgi_cache CACHEZONE;
          fastcgi_cache_valid  any 10m;
          

          Nginx -ב FastCGI ןומטמ יעוציב לש ןידע ןונווכ

          . {} םוקימ וא {} תרש רשקה ב וא http {} ב , fastcgi_cache_min_uses היחנהה תא לולכ ,הבוגתה תרימש ינפל חתפמ ותוא םע השקב שיגהל שיש

          fastcgi_cache_min_uses  3
          

          . {} םוקימ וא {} תרש וא ךותב , fastcgi_cache_revalidate היחנהה תא ףסוה ,"If-None-Match"\-ו "If-Modified-since" \

          fastcgi_cache_revalidate on;
          

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

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

          proxy_cache_use_stale error timeout http_500;
          

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

          fastcgi_cache_background_update on;
          

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

          fastcgi_cache_lock on;
          

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

          # nginx -t
          # systemctl restart nginx
          

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

          # curl -I http://testapp.linux-console.net
          

          .םישפועמ םינותנ שיגמה NGINX גיצמש ףסונ ךסמ םוליצ הנה

          ףקוע ןומטמל םיגירח תפסוה

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

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

          set $skip_cache 0; 
          if ($request_method = POST) { 
          	set $skip_cache 1; 
          } 
          

          . fastcgi_no_cache fastcgi_cache_bypass תוארוהה תועצמאב ,PHP-FPM -ל PHP תושקב ריבעמ רשא םוקימ תארוהב ל"נה גירחה תא לעפה ןכמ רחאל

           
          fastcgi_cache_bypass $skip_cache; 
          fastcgi_no_cache $skip_cache;
          

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

          .ךתביבסב םייקש המ תא ףקשל ידכ (' וכו םיצבקה תומש ,םיביתנה ,ןיימודה ןוגכ) םייוניש עצב ,וב שמתשהל ידכ

          fastcgi_cache_path /var/run/NGINX-cache levels=1:2 keys_zone=WORDPRESS:100m inactive=60m; 
          fastcgi_cache_key "$scheme$request_method$host$request_uri"; 
          server { 
          	server_name example.com www.example.com; 
          	root /var/www/example.com; 
          	index index.php; 
          	access_log /var/log/NGINX/example.com.access.log; 
          	error_log /var/log/NGINX/example.com.error.log; 
          	set $skip_cache 0; 
          	# POST requests and URLs with a query string should always go to PHP 	
          	if ($request_method = POST) { 
          		set $skip_cache 1; 
          	} 
          	if ($query_string != "") {
          		set $skip_cache 1; 
          	} 
          	# Don't cache URIs containing the following segments 
          	if ($request_uri ~* "/wp-admin/|/xmlrpc.php|wp-.*.php|/feed/|index.php |sitemap(_index)?.xml") { 
          		set $skip_cache 1; 
          	} 
          	# Don't use the cache for logged-in users or recent commenters 
          	if ($http_cookie ~* "comment_author|wordpress_[a-f0-9]+|wp-postpass |wordpress_no_cache|wordpress_logged_in") {
          		set $skip_cache 1; 
          	} 
          	location / { 
          		try_files $uri $uri/ /index.php?$args; 
          	} 
          	location ~ .php$ { 
          		try_files $uri /index.php; 
          		include fastcgi_params; 
          		fastcgi_pass unix:/var/run/php5-fpm.sock; 
          		fastcgi_cache_bypass $skip_cache; 
          		fastcgi_no_cache $skip_cache; 
          		fastcgi_cache WORDPRESS; 
          		fastcgi_cache_valid 60m; 
          	} 
          	location ~ /purge(/.*) {
          		fastcgi_cache_purge WORDPRESS "$scheme$request_method$host$1"; 
          	} 
          	location ~* ^.+.(ogg|ogv|svg|svgz|eot|otf|woff|mp4|ttf|css|rss|atom|js|jpg|jpeg |gif|png|ico|zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|tar|mid|midi |wav|bmp|rtf)$ { 
          		access_log off; 
          		log_not_found off; 
          		expires max; 
          	} 
          	location = /robots.txt { 
          		access_log off; 
          		log_not_found off; 
          	}
          	location ~ /. { 
          		deny all; 
          		access_log off; 
          		log_not_found off; 
          	} 
          }
          

          NGINX -ב Proxy ןומטמ תלעפה

          NGINX םירחא םירשוקמ םיתרשמ תובוגת לש ןומטמב םג ךמות (היחנהה ידי לע רדגומ proxy_pass ). ב םישמתשמ ונא הז ןחבמ הרקמב- NGINX כ- proxy לש טנרטניא םושייל ךופה Node.js, תא ליעפנ ונ

          .אבה ןפואב proxy_cache_key היחנהה תא ףיסוהל ןתינ ,תושקבה תרימש ןפוא תא ןייצל ידכ .הנוילעה המרב http {} רשקהב proxy_cache_path היחנהה תא לולכ ,ר

          proxy_cache_path /var/cache/nginx app1 keys_zone=PROXYCACHE:100m inactive=60m max_size=500m;
          proxy_cache_key  "$scheme$request_method$host$request_uri";
          add_header X-Cache-Status $upstream_cache_status;
          proxy_cache_min_uses 3;
          

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

          location / {
          	proxy_pass http://127.0.0.1:3000;
          	proxy_cache        PROXYCACHE;
          	proxy_cache_valid 200 302 10m;
          	proxy_cache_valid 404      1m;
          }
          

          . proxy_no_cache proxy_cache_bypass תא לולכ ,הלעמב תרשהמ ללכ הבוגת ןומטמ רמוש וניאו ןומטמב ןכות חלוש וניא NGINX םהבש םיאנת רידגהל ידכ

           
          proxy_cache_bypass  $cookie_nocache $arg_nocache$arg_comment;
          proxy_no_cache        $http_pragma $http_authorization;
          

          יסקורפ ןומטמ יעוציב ןונוויכ

          .FastCGI תוארוהל תוהז תויועמשמ םג םהל שי .proxy -ה ןומטמ לש םיעוציבה לש ןידע ןונווכל תוישומיש תואבה תוארוהה

          proxy_cache_min_uses 3;
          proxy_cache_revalidate on;
          proxy_cache_use_stale error timeout updating http_500;
          proxy_cache_background_update on;
          proxy_cache_lock on;
          

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

          .סרפדרוו יעוציב רופישל םיפיט :םיפסונ םיבאשמ


כל הזכויות שמורות. © Linux-Console.net • 2019-2024