Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
Nginx Ö÷ÒªÓ¦Óó¡¾°
 
×÷Õߣºwyait
  3030  次浏览      27
2020-6-30
 
±à¼­ÍƼö:
±¾ÎÄÖ»Õë¶ÔNginxÔÚ²»¼ÓÔØµÚÈý·½Ä£¿éµÄÇé¿öÄÜ´¦ÀíÄÄЩÊÂÇ飬ÓÉÓÚµÚÈý·½Ä£¿éÌ«¶àËùÒÔÒ²½éÉܲ»Í꣬µ±È»±¾Îı¾ÉíÒ²¿ÉÄܽéÉܵIJ»ÍêÕû¡£
±¾ÎÄÀ´×ÔÓÚ51cto£¬ÓÉ»ðÁú¹ûÈí¼þAnna±à¼­ÍƼö¡£

NginxÄÜ×öʲô

1.·´Ïò´úÀí

2.¸ºÔؾùºâ

3.HTTP·þÎñÆ÷£¨°üº¬¶¯¾²·ÖÀ룩

4.ÕýÏò´úÀí

ÒÔÉϾÍÊÇÁ˽⵽µÄNginxÔÚ²»ÒÀÀµµÚÈý·½Ä£¿éÄÜ´¦ÀíµÄÊÂÇ飬ÏÂÃæÏêϸ˵Ã÷ÿÖÖ¹¦ÄÜÔõô×ö

·´Ïò´úÀí

·´Ïò´úÀíÓ¦¸ÃÊÇNginx×öµÄ×î¶àµÄÒ»¼þÊÂÁË£¬Ê²Ã´ÊÇ·´Ïò´úÀíÄØ£¬ÒÔÏÂÊǰٶȰٿƵÄ˵·¨£º·´Ïò´úÀí£¨ReverseProxy£©·½Ê½ÊÇÖ¸ÒÔ´úÀí·þÎñÆ÷À´½ÓÊÜinternetÉϵÄÁ¬½ÓÇëÇó£¬È»ºó½«ÇëÇóת·¢¸øÄÚ²¿ÍøÂçÉϵķþÎñÆ÷£¬²¢½«´Ó·þÎñÆ÷Éϵõ½µÄ½á¹û·µ»Ø¸øinternetÉÏÇëÇóÁ¬½ÓµÄ¿Í»§¶Ë£¬´Ëʱ´úÀí·þÎñÆ÷¶ÔÍâ¾Í±íÏÖΪһ¸ö·´Ïò´úÀí·þÎñÆ÷¡£¼òµ¥À´Ëµ¾ÍÊÇÕæÊµµÄ·þÎñÆ÷²»ÄÜÖ±½Ó±»Íâ²¿ÍøÂç·ÃÎÊ£¬ËùÒÔÐèҪһ̨´úÀí·þÎñÆ÷£¬¶ø´úÀí·þÎñÆ÷Äܱ»Íâ²¿ÍøÂç·ÃÎʵÄͬʱÓÖ¸úÕæÊµ·þÎñÆ÷ÔÚͬһ¸öÍøÂç»·¾³£¬µ±È»Ò²¿ÉÄÜÊÇͬһ̨·þÎñÆ÷£¬¶Ë¿Ú²»Í¬¶øÒÑ¡£ÏÂÃæÌùÉÏÒ»¶Î¼òµ¥µÄʵÏÖ·´Ïò´úÀíµÄ´úÂë

server {

listen 80;

server_name localhost;

client_max_body_size 1024M;

location / {

proxy_pass http://localhost:8080;

proxy_set_header Host $host:$server_port;

}

}

±£´æÅäÖÃÎļþºóÆô¶¯Nginx£¬ÕâÑùµ±ÎÒÃÇ·ÃÎÊlocalhostµÄʱºò£¬¾ÍÏ൱ÓÚ·ÃÎÊlocalhost:8080ÁË

¸ºÔؾùºâ

¸ºÔؾùºâÒ²ÊÇNginx³£ÓõÄÒ»¸ö¹¦ÄÜ£¬¸ºÔؾùºâÆäÒâ˼¾ÍÊÇ·Ö̯µ½¶à¸ö²Ù×÷µ¥ÔªÉϽøÐÐÖ´ÐУ¬ÀýÈçWeb·þÎñÆ÷¡¢FTP·þÎñÆ÷¡¢ÆóÒµ¹Ø¼üÓ¦Ó÷þÎñÆ÷ºÍÆäËü¹Ø¼üÈÎÎñ·þÎñÆ÷µÈ£¬´Ó¶ø¹²Í¬Íê³É¹¤×÷ÈÎÎñ¡£¼òµ¥¶øÑÔ¾ÍÊǵ±ÓÐ2̨»òÒÔÉÏ·þÎñÆ÷ʱ£¬¸ù¾Ý¹æÔòËæ»úµÄ½«ÇëÇó·Ö·¢µ½Ö¸¶¨µÄ·þÎñÆ÷ÉÏ´¦Àí£¬¸ºÔؾùºâÅäÖÃÒ»°ã¶¼ÐèҪͬʱÅäÖ÷´Ïò´úÀí£¬Í¨¹ý·´Ïò´úÀíÌø×ªµ½¸ºÔؾùºâ¡£¶øNginxĿǰ֧³Ö×Ô´ø3ÖÖ¸ºÔؾùºâ²ßÂÔ£¬»¹ÓÐ2ÖÖ³£ÓõĵÚÈý·½²ßÂÔ¡£

1¡¢RR£¨Ä¬ÈÏ£©

ÿ¸öÇëÇó°´Ê±¼ä˳ÐòÖðÒ»·ÖÅäµ½²»Í¬µÄºó¶Ë·þÎñÆ÷£¬Èç¹ûºó¶Ë·þÎñÆ÷downµô£¬ÄÜ×Ô¶¯ÌÞ³ý¡£

¼òµ¥ÅäÖÃ

upstream test {

server localhost:8080;

server localhost:8081;

}

server {

listen 81;

server_name localhost;

client_max_body_size 1024M;

location / {

proxy_pass http://test;

proxy_set_header Host $host:$server_port;

}

}

¸ºÔؾùºâµÄºËÐÄ´úÂëΪ

upstream test {

server localhost:8080;

server localhost:8081;

}

ÕâÀïÎÒÅäÖÃÁË2̨·þÎñÆ÷£¬µ±È»Êµ¼ÊÉÏÊÇһ̨£¬Ö»ÊǶ˿ڲ»Ò»Ñù¶øÒÑ£¬¶ø8081µÄ·þÎñÆ÷ÊDz»´æÔÚµÄ,Ò²¾ÍÊÇ˵·ÃÎʲ»µ½£¬µ«ÊÇÎÒÃÇ·ÃÎÊhttp://localhostµÄʱºò,Ò²²»»áÓÐÎÊÌ⣬»áĬÈÏÌø×ªµ½http://localhost:8080¾ßÌåÊÇÒòΪNginx»á×Ô¶¯ÅжϷþÎñÆ÷µÄ״̬£¬Èç¹û·þÎñÆ÷´¦ÓÚ²»ÄÜ·ÃÎÊ£¨·þÎñÆ÷¹ÒÁË£©£¬¾Í²»»áÌø×ªµ½Õą̂·þÎñÆ÷£¬ËùÒÔÒ²±ÜÃâÁËһ̨·þÎñÆ÷¹ÒÁËÓ°ÏìʹÓõÄÇé¿ö£¬ÓÉÓÚNginxĬÈÏÊÇRR²ßÂÔ£¬ËùÒÔÎÒÃDz»ÐèÒªÆäËû¸ü¶àµÄÉèÖá£

2¡¢È¨ÖØ

Ö¸¶¨ÂÖѯ¼¸ÂÊ£¬weightºÍ·ÃÎʱÈÂʳÉÕý±È£¬ÓÃÓÚºó¶Ë·þÎñÆ÷ÐÔÄܲ»¾ùµÄÇé¿ö¡£ÀýÈç

upstream test {

server localhost:8080 weight=9;

server localhost:8081 weight=1;

}

ÄÇô10´ÎÒ»°ãÖ»»áÓÐ1´Î»á·ÃÎʵ½8081£¬¶øÓÐ9´Î»á·ÃÎʵ½8080

3¡¢ip_hash

ÉÏÃæµÄ2ÖÖ·½Ê½¶¼ÓÐÒ»¸öÎÊÌ⣬ÄǾÍÊÇÏÂÒ»¸öÇëÇóÀ´µÄʱºòÇëÇó¿ÉÄÜ·Ö·¢µ½ÁíÍâÒ»¸ö·þÎñÆ÷£¬µ±ÎÒÃǵijÌÐò²»ÊÇÎÞ״̬µÄʱºò£¨²ÉÓÃÁËsession±£´æÊý¾Ý£©£¬Õâʱºò¾ÍÓÐÒ»¸öºÜ´óµÄºÜÎÊÌâÁË£¬±ÈÈç°ÑµÇ¼ÐÅÏ¢±£´æµ½ÁËsessionÖУ¬ÄÇÃ´Ìø×ªµ½ÁíÍâһ̨·þÎñÆ÷µÄʱºò¾ÍÐèÒªÖØÐµÇ¼ÁË£¬ËùÒԺܶàʱºòÎÒÃÇÐèÒªÒ»¸ö¿Í»§Ö»·ÃÎÊÒ»¸ö·þÎñÆ÷£¬ÄÇô¾ÍÐèÒªÓÃiphashÁË£¬iphashµÄÿ¸öÇëÇó°´·ÃÎÊipµÄhash½á¹û·ÖÅ䣬ÕâÑùÿ¸ö·Ã¿Í¹Ì¶¨·ÃÎÊÒ»¸öºó¶Ë·þÎñÆ÷£¬¿ÉÒÔ½â¾ösessionµÄÎÊÌâ¡£

upstream test {

ip_hash;

server localhost:8080;

server localhost:8081;

}

4¡¢fair£¨µÚÈý·½£©

°´ºó¶Ë·þÎñÆ÷µÄÏìӦʱ¼äÀ´·ÖÅäÇëÇó£¬ÏìӦʱ¼ä¶ÌµÄÓÅÏÈ·ÖÅä¡£

upstream backend {

fair;

server localhost:8080;

server localhost:8081;

}

5¡¢url_hash£¨µÚÈý·½£©

°´·ÃÎÊurlµÄhash½á¹ûÀ´·ÖÅäÇëÇó£¬Ê¹Ã¿¸öurl¶¨Ïòµ½Í¬Ò»¸öºó¶Ë·þÎñÆ÷£¬ºó¶Ë·þÎñÆ÷Ϊ»º´æÊ±±È½ÏÓÐЧ¡£ÔÚupstreamÖмÓÈëhashÓï¾ä£¬serverÓï¾äÖв»ÄÜдÈëweightµÈÆäËûµÄ²ÎÊý£¬hash_methodÊÇʹÓõÄhashËã·¨

upstream backend {

hash $request_uri;

hash_method crc32;

server localhost:8080;

server localhost:8081;

}

ÒÔÉÏ5ÖÖ¸ºÔؾùºâ¸÷×ÔÊÊÓò»Í¬Çé¿öÏÂʹÓã¬ËùÒÔ¿ÉÒÔ¸ù¾Ýʵ¼ÊÇé¿öÑ¡ÔñʹÓÃÄÄÖÖ²ßÂÔģʽ,²»¹ýfairºÍurl_hashÐèÒª°²×°µÚÈý·½Ä£¿é²ÅÄÜʹÓã¬ÓÉÓÚ±¾ÎÄÖ÷Òª½éÉÜNginxÄÜ×öµÄÊÂÇ飬ËùÒÔNginx°²×°µÚÈý·½Ä£¿é²»»áÔÙ±¾ÎĽéÉÜ

HTTP·þÎñÆ÷

Nginx±¾ÉíÒ²ÊÇÒ»¸ö¾²Ì¬×ÊÔ´µÄ·þÎñÆ÷£¬µ±Ö»Óо²Ì¬×ÊÔ´µÄʱºò£¬¾Í¿ÉÒÔʹÓÃNginxÀ´×ö·þÎñÆ÷£¬Í¬Ê±ÏÖÔÚÒ²ºÜÁ÷Ðж¯¾²·ÖÀ룬¾Í¿ÉÒÔͨ¹ýNginxÀ´ÊµÏÖ£¬Ê×ÏÈ¿´¿´Nginx×ö¾²Ì¬×ÊÔ´·þÎñÆ÷

erver {

listen 80;

server_name localhost;

client_max_body_size 1024M;

location / {

root e:wwwroot;

index index.html;

}

}

ÕâÑùÈç¹û·ÃÎÊhttp://localhost¾Í»áĬÈÏ·ÃÎʵ½EÅÌwwwrootĿ¼ÏÂÃæµÄindex.html£¬Èç¹ûÒ»¸öÍøÕ¾Ö»ÊǾ²Ì¬Ò³ÃæµÄ»°£¬ÄÇô¾Í¿ÉÒÔͨ¹ýÕâÖÖ·½Ê½À´ÊµÏÖ²¿Êð¡£

¶¯¾²·ÖÀë

¶¯¾²·ÖÀëÊÇÈö¯Ì¬ÍøÕ¾ÀïµÄ¶¯Ì¬ÍøÒ³¸ù¾ÝÒ»¶¨¹æÔò°Ñ²»±äµÄ×ÊÔ´ºÍ¾­³£±äµÄ×ÊÔ´Çø·Ö¿ªÀ´£¬¶¯¾²×ÊÔ´×öºÃÁ˲ð·ÖÒÔºó£¬ÎÒÃǾͿÉÒÔ¸ù¾Ý¾²Ì¬×ÊÔ´µÄÌØµã½«Æä×ö»º´æ²Ù×÷£¬Õâ¾ÍÊÇÍøÕ¾¾²Ì¬»¯´¦ÀíµÄºËÐÄ˼·

upstream test{

server localhost:8080;

server localhost:8081;

}

server {

listen 80;

server_name localhost;

location / {

root e:wwwroot;

index index.html;

}

# ËùÓо²Ì¬ÇëÇó¶¼ÓÉnginx´¦Àí£¬´æ·ÅĿ¼Ϊhtml

location ~ .(gif|jpg|jpeg|png|bmp|swf|css|js)$ {

root e:wwwroot;

}

# ËùÓж¯Ì¬ÇëÇó¶¼×ª·¢¸øtomcat´¦Àí

location ~ .(jsp|do)$ {

proxy_pass http://test;

}

error_page 500 502 503 504 /50x.html;

location = /50x.html {

root e:wwwroot;

}

}


ÕâÑùÎÒÃǾͿÉÒÔ°ÉHTMLÒÔ¼°Í¼Æ¬ºÍcssÒÔ¼°js·Åµ½wwwrootĿ¼Ï£¬¶øtomcatÖ»¸ºÔð´¦ÀíjspºÍÇëÇó£¬ÀýÈçµ±ÎÒÃǺó׺ΪgifµÄʱºò£¬NginxĬÈÏ»á´Ówwwroot»ñÈ¡µ½µ±Ç°ÇëÇóµÄ¶¯Ì¬Í¼Îļþ·µ»Ø£¬µ±È»ÕâÀïµÄ¾²Ì¬Îļþ¸úNginxÊÇͬһ̨·þÎñÆ÷£¬ÎÒÃÇÒ²¿ÉÒÔÔÚÁíÍâһ̨·þÎñÆ÷£¬È»ºóͨ¹ý·´Ïò´úÀíºÍ¸ºÔؾùºâÅäÖùýÈ¥¾ÍºÃÁË£¬Ö»Òª¸ãÇå³þÁË×î»ù±¾µÄÁ÷³Ì£¬ºÜ¶àÅäÖþͺܼòµ¥ÁË£¬ÁíÍâlocaltionºóÃæÆäʵÊÇÒ»¸öÕýÔò±í´ïʽ£¬ËùÒԷdz£Áé»î

ÕýÏò´úÀí

ÕýÏò´úÀí£¬Òâ˼ÊÇÒ»¸öλÓÚ¿Í»§¶ËºÍԭʼ·þÎñÆ÷(originserver)Ö®¼äµÄ·þÎñÆ÷£¬ÎªÁË´Óԭʼ·þÎñÆ÷È¡µÃÄÚÈÝ£¬¿Í»§¶ËÏò´úÀí·¢ËÍÒ»¸öÇëÇó²¢Ö¸¶¨Ä¿±ê(ԭʼ·þÎñÆ÷)£¬È»ºó´úÀíÏòԭʼ·þÎñÆ÷ת½»ÇëÇó²¢½«»ñµÃµÄÄÚÈÝ·µ»Ø¸ø¿Í»§¶Ë¡£¿Í»§¶Ë²ÅÄÜʹÓÃÕýÏò´úÀí¡£µ±ÄãÐèÒª°ÑÄãµÄ·þÎñÆ÷×÷Ϊ´úÀí·þÎñÆ÷µÄʱºò£¬¿ÉÒÔÓÃNginxÀ´ÊµÏÖÕýÏò´úÀí£¬µ«ÊÇĿǰNginxÓÐÒ»¸öÎÊÌ⣬ÄÇô¾ÍÊDz»Ö§³ÖHTTPS£¬ËäÈ»ÎҰٶȵ½¹ýÅäÖÃHTTPSµÄÕýÏò´úÀí£¬µ«Êǵ½×îºó·¢ÏÖ»¹ÊÇ´úÀí²»ÁË£¬µ±È»¿ÉÄÜÊÇÎÒÅäÖõIJ»¶Ô£¬ËùÒÔҲϣÍûÓÐÖªµÀÕýÈ··½·¨µÄͬ־ÃÇÁôÑÔ˵Ã÷һϡ£

resolver 114.114.114.114 8.8.8.8;

server {

resolver_timeout 5s;

listen 81;

access_log e:wwwrootproxy.access.log;

error_log e:wwwrootproxy.error.log;

location / {

proxy_pass http://$host$request_uri;

}

}

resolverÊÇÅäÖÃÕýÏò´úÀíµÄDNS·þÎñÆ÷£¬listen ÊÇÕýÏò´úÀíµÄ¶Ë¿Ú£¬ÅäÖúÃÁ˾ͿÉÒÔÔÚieÉÏÃæ»òÕ߯äËû´úÀí²å¼þÉÏÃæÊ¹Ó÷þÎñÆ÷ip+¶Ë¿ÚºÅ½øÐдúÀíÁË¡£

   
3030 ´Îä¯ÀÀ       27
????

HTTP????
nginx??????
SD-WAN???
5G?????
 
????

??????????
IPv6???????
??????????
???????
????

????????
????????
???????????????
??????????
×îл¼Æ»®
DeepSeekÔÚÈí¼þ²âÊÔÓ¦ÓÃʵ¼ù 4-12[ÔÚÏß]
DeepSeek´óÄ£ÐÍÓ¦Óÿª·¢Êµ¼ù 4-19[ÔÚÏß]
UAF¼Ü¹¹ÌåϵÓëʵ¼ù 4-11[±±¾©]
AIÖÇÄÜ»¯Èí¼þ²âÊÔ·½·¨Óëʵ¼ù 5-23[ÉϺ£]
»ùÓÚ UML ºÍEA½øÐзÖÎöÉè¼Æ 4-26[±±¾©]
ÒµÎñ¼Ü¹¹Éè¼ÆÓ뽨ģ 4-18[±±¾©]
 
×îÐÂÎÄÕÂ
ÔÆÔ­Éú¼Ü¹¹¸ÅÊö
K8S¸ß¿ÉÓü¯Èº¼Ü¹¹ÊµÏÖ
ÈÝÆ÷ÔÆ¹ÜÀíÖ®K8S¼¯Èº¸ÅÊö
k8s-ÕûÌå¸ÅÊöºÍ¼Ü¹¹
Ê®·ÖÖÓѧ»áÓÃdocker²¿Êð΢·þÎñ
×îпγÌ
ÔÆ¼ÆË㡢΢·þÎñÓë·Ö²¼Ê½¼Ü¹¹
Æóҵ˽ÓÐÔÆÔ­ÀíÓë¹¹½¨
»ùÓÚKubernetesµÄDevOpsʵ¼ù
ÔÆÆ½Ì¨¼Ü¹¹ÓëÓ¦Ó㨰¢ÀïÔÆ£©
Docker²¿Êð±»²âϵͳÓë×Ô¶¯»¯¿ò¼Üʵ¼ù
³É¹¦°¸Àý
±±¾© ÔÆÆ½Ì¨Óë΢·þÎñ¼Ü¹¹Éè¼Æ
ͨÓù«Ë¾GE DockerÔ­ÀíÓëʵ¼ùÅàѵ
ij¾ü¹¤Ñо¿µ¥Î» MDA£¨Ä£ÐÍÇý¶¯¼Ü¹¹£©
ÖªÃûÏû·Ñ½ðÈÚ¹«Ë¾ ÁìÓòÇý¶¯Éè¼Æ
ÉîÛÚijÆû³µÆóÒµ Ä£ÐÍÇý¶¯µÄ·ÖÎöÉè¼Æ