»Æ½ð³ÇÍøÕ¾

Nginx100%ÊÓÆµÓÅ»¯£ºÊͷż«ÖÂÁ÷ͨÌåÑéµÄÉñÃØÎäÆ÷
ȪԴ£ºÖ¤È¯Ê±±¨Íø×÷Õߣº·½±£ƒS2026-03-03 12:32:10
wwwzqhsauikdwjbfkjabfwqr

Ò»¡¢Àë±ð¿¨¶Ù£ºNginxÔõÑù³ÉΪÊÓÆµÓÅ»¯µÄ¡°ËÙÂʼÌÐø¡±

ÔÚµ±½ñÐÅÏ¢±¬Õ¨µÄʱ´ú£¬ÊÓÆµÒѾ­³ÉΪ×îÊܽӴýµÄÄÚÈÝÏûºÄÐÎʽ֮һ¡£ÎÞÂÛÊǾ«²ÊµÄÈüÊÂÖ±²¥¡¢ÒýÈËÈëʤµÄÓ°ÊӾ缯£¬ÕÕ¾ÉÉú¶¯ÓÐȤµÄ½Ìѧ¶ÌƬ£¬Á÷ͨµÄԢĿÌåÑéÊÇÓû§×î»ù±¾Ò²ÊÇ×îÖ÷ÒªµÄÐèÇó¡£·þÎñÆ÷´ø¿íȱ·¦¡¢ÍøÂçÑÓ³Ù¡¢²¢·¢Óû§¹ý¶àµÈÎÊÌ⣬¾­³£ÈÃÓû§ÔÚԢĿÊÓÆµÊ±±¥ÊÜ¿¨¶Ù¡¢¼ÓÔØ»ºÂýÖ®¿à¡£

ÐÒÔ˵ÄÊÇ£¬Nginx£¬Õâ¸öÒÔ¸ßÐÔÄÜ¡¢¸ß²¢·¢Öø³ÆµÄWeb·þÎñÆ÷£¬ÒÀ¸½ÆäǿʢµÄ¹¦Ð§ºÍÎÞаµÄÉèÖã¬Äܹ»³ÉΪ½â¾öÊÓÆµÓÅ»¯ÄÑÌâµÄ¡°ËÙÂʼÌÐø¡±¡£

NginxÖ®ÒÔÊÇÄÜÔÚÊÓÆµÓÅ»¯ÁìÓò´ó·ÅÒì²Ê£¬Àë²»¿ªÆä¾«ÃîµÄ¼Ü¹¹Éè¼ÆºÍһϵÁиßЧµÄÄ£¿é¡£Nginx½ÓÄÉÊÂÎñÇý¶¯¡¢Òì²½·ÇÛÕ±ÕµÄÊÂÇéģʽ£¬ÕâÒâζ×ÅËü¿ÉÒÔͬʱ´¦Öóͷ£³ÉǧÉÏÍò¸ö²¢·¢ÅþÁ¬£¬¶ø²»»áÏñ¹Å°åµÄ?Apache·þÎñÆ÷ÄÇÑùΪÿ¸öÅþÁ¬½¨ÉèÒ»¸ö×ÔÁ¦µÄÀú³Ì»òỊ̈߳¬´Ó¶ø¼«´óµØ½µµÍÁË·þÎñÆ÷µÄ×ÊÔ´ÏûºÄ£¬ÌáÉýÁË´¦Öóͷ£ÄÜÁ¦¡£

¹ØÓÚÊÓÆµÕâÖÖÐèÒªÒ»Á¬¡¢´ó×ÚÊý¾Ý´«ÊäµÄÓ¦Óó¡¾°¶øÑÔ£¬ÕâÖÖ¸ßЧµÄ²¢·¢´¦Öóͷ£ÄÜÁ¦ÊÇÖÁ¹ØÖ÷ÒªµÄ¡£

NginxǿʢµÄ»º´æ»úÖÆÊÇʵÏÖÊÓÆµÓÅ»¯µÄÒªº¦Ö®Ò»¡£Í¨¹ýÉèÖÃNginxµÄproxy_cache»òfastcgi_cacheµÈÄ£¿é£¬ÎÒÃÇ¿ÉÒÔ½«Óû§ÇëÇó¹ýµÄÊÓÆµÎļþ»º±£´æ·þÎñÆ÷ÍâµØ»òCDN±ßÑØ½Úµã¡£µ±ÆäËûÓû§ÔÙ´ÎÇëÇóͳһÊÓÆµÊ±£¬Nginx¿ÉÒÔÖ±½Ó´Ó»º´æÖжÁÈ¡Êý¾Ý²¢·µ»Ø£¬ÎÞÐèÔÙ´ÎÏòÔ´·þÎñÆ÷ÌᳫÇëÇ󣬴ó´óËõ¶ÌÁËÏìӦʱ¼ä£¬¼õÇáÁËÔ´·þÎñÆ÷µÄѹÁ¦¡£

¸üÖ÷ÒªµÄÊÇ£¬NginxµÄ»º´æ¿ÉÒÔÉèÖÃΪÖÇÄÜ»º´æ£¬ÀýÈçÆ¾Ö¤ÇëÇóÍ·ÐÅÏ¢£¨ÈçIf-Modified-Since£©À´ÅжÏ×ÊÔ´ÊÇ·ñÒѸüУ¬×èÖ¹»º´æÓâÆÚʧЧ£¬Í¬Ê±Ò²ÄÜÓÐÓÃʹÓûº´æ¿Õ¼ä¡£¹ØÓÚÊÓÆµÕâÖÖÌåÁ¿´ó¡¢¸üÐÂÆµÂÊÏà¶Ô½ÏµÍµÄÄÚÈÝ£¬»º´æµÄ×÷ÓÃÓÈΪÏÔÖø¡£

ÔÙÕߣ¬Nginx¶ÔHTTP/2ºÍHTTP/3ЭÒéµÄÓÅÒìÖ§³Ö£¬ÎªÊÓÆµ´«Êä´øÀ´Á˸ïÃüÐÔµÄÌáÉý¡£HTTP/2ÒýÈëÁ˶à·¸´Óã¨Multiplexing£©ÊÖÒÕ£¬ÔÊÐí¿Í»§¶Ëͨ¹ýµ¥?¸öTCPÅþÁ¬²¢Ðз¢ËͶà¸öÇëÇ󣬲¢ÔÚ·þÎñÆ÷¶Ë²¢Ðд¦Öóͷ££¬È»ºóÔÚͳһ¸öÅþÁ¬ÉÏÒÔÂÒÐòµÄ·½·¨·µ»ØÏìÓ¦¡£

ÕâÒâζ×Å×ÝÈ»ÔÚ´«ÊäÊÓÆµµÄ¸÷¸ö·ÖƬʱ£¬ÆäËû×ÊÔ´£¨ÈçͼƬ¡¢CSS¡¢JavaScript£©Ò²¿ÉÒÔͬʱ±»¼ÓÔØ£¬¼«´óµØïÔÌ­ÁËÅþÁ¬½¨ÉèµÄ¿ªÏúºÍ¶ÓÍ·ÛÕ±Õ£¨Head-of-LineBlocking£©ÎÊÌ⣬ÏÔÖøÌáÉýÁËÒ³Ãæ¼ÓÔØËÙÂʺÍÊÓÆµ²¥·ÅµÄÆðʼËÙÂÊ¡£¶ø¼´½«ÆÕ¼°µÄHTTP/3£¬¸üÊÇ»ùÓÚQUICЭÒ飬½øÒ»²½½â¾öÁËTCPÔÚÍøÂç²»ÎȹÌʱµÄÓµÈû¿ØÖÆÎÊÌ⣬´øÀ´Á˸üµÍµÄÑӳٺ͸ü¸ßµÄÍÌÍÂÁ¿¡£

NginxǿʢµÄGzipºÍBrotliѹËõ¹¦Ð§£¬Ò²ÄÜÔÚÊÓÆµ´«ÊäÀú³ÌÖÐʩչÖ÷Òª×÷Óá£ËäÈ»ÊÓÆµÎļþ×Ô¼ºÍ¨³£ÒѾ­ÊǸ߶ÈѹËõµÄÃûÌã¨ÈçH.264,H.265,VP9µÈ£©£¬µ«ÊÓÆµ²¥?·ÅÆ÷ÔÚÇëÇóÊÓÆµµÄÔªÊý¾ÝÎļþ£¨Èç.m3u8²¥·ÅÁÐ±í¡¢.mpdÇåµ¥Îļþ£©Ê±£¬ÕâЩÎı¾Îļþ¿ÉÒÔͨ¹ýGzip»òBrotli¾ÙÐÐѹËõ£¬ïÔÌ­´«ÊäÁ÷Á¿£¬¼ÓËÙÆÊÎöËÙÂÊ¡£

¸üÖ÷ÒªµÄÊÇ£¬¹ØÓÚһЩ·ÇÊÓÆµÄÚÈݵĸ¨Öú×ÊÔ´£¬Èç×ÖÄ»Îļþ¡¢JavaScriptÎļþµÈ£¬GzipºÍBrotliµÄѹËõЧ¹û½«¸üΪÏÔ×Å£¬Ö±½ÓÌáÉýÁËÕûÌåµÄ¼ÓÔØÐ§ÂÊ¡£

Nginx»¹ÌṩÁËÁ÷Á¿¿ØÖÆ£¨RateLimiting£©¹¦Ð§£¬ÕâÔÚÊÓÆµ·Ö·¢³¡¾°ÏÂÓÈΪÖ÷Òª¡£Í¨¹ýÉèÖÃlimit_req_zoneºÍlimit_reqÖ¸ÁÎÒÃÇ¿ÉÒÔÏÞÖÆµ¥Î»Ê±¼äÄÚÀ´×ÔͳһIPµØÖ·µÄÇëÇóÊýÄ¿£¬ÓÐÓñÜÃâÒò¶ñÒâÅÀ³æ»òÍ»·¢Á÷Á¿¹¥»÷µ¼Ö·þÎñÆ÷¹ýÔØ£¬´Ó¶ø°ü¹ÜÕý³£Óû§Äܹ»»ñµÃÎȹÌÁ÷ͨµÄԢĿÌåÑé¡£

ϸÄåµÄÁ÷Á¿¿ØÖÆÒ²¿ÉÒÔ×ÊÖúÔËÓªÉ̸üºÃµØ¹ÜÀí´ø¿í×ÊÔ´£¬×èֹijЩÓû§Ì«¹ýÏûºÄ´ø¿í¶øÓ°ÏìÆäËûÓû§µÄ·þÎñÖÊÁ¿¡£

NginxÔÚHTTPS¼ÓÃÜ·½ÃæµÄÖ§³Ö?Ò²ÊÇÊÓÆµÓÅ»¯µÄÒ»¸öÖ÷Òª×é³É²¿·Ö¡£ËäÈ»¼ÓÃÜ»á´øÀ´Ò»¶¨µÄÐÔÄÜ¿ªÏú£¬µ«¹ØÓÚ±£»¤Óû§Òþ˽ºÍÊý¾ÝÇå¾²ÖÁ¹ØÖ÷Òª¡£NginxÄܹ»¸ßЧµØ´¦Öóͷ£TLS/SSLÎÕÊÖ£¬²¢?ͨ¹ýÖîÈçOCSPStapling¡¢SessionResumptionµÈÊÖÒÕÀ´ÓÅ»¯HTTPSµÄÐÔÄÜ£¬×î´óÏ޶ȵØïÔÌ­¼ÓÃÜ´øÀ´µÄÑÓ³Ù?£¬È·±£ÊÓÆµ´«ÊäµÄÇå¾²Óë¸ßЧ¡£

×ܶøÑÔÖ®£¬Nginxͨ¹ýÆäÊÂÎñÇý¶¯¼Ü¹¹¡¢Ç¿Ê¢?µÄ»º´æ»úÖÆ¡¢¶Ô×îÐÂHTTPЭÒéµÄÖ§³Ö¡¢¸ßЧµÄѹËõËã·¨¡¢Ï¸ÄåµÄÁ÷Á¿¿ØÖÆÒÔ¼°ÓÅ»¯µÄHTTPSʵÏÖ£¬Äܹ»ÖÜÈ«ÌáÉýÊÓÆµÄÚÈݵĴ«ÊäЧÂʺÍÓû§ÌåÑ飬ÊÇʵÏÖ¡°Nginx100%ÊÓÆµÓÅ»¯¡±²»¿É»òȱµÄÀûÆ÷¡£

½ÓÏÂÀ´µÄpart2£¬ÎÒÃǽ«ÉîÈë̽ÌÖÏêϸµÄÉèÖÃÕ½ÂÔºÍʵ¼ù¼¼ÇÉ£¬ÖúÄúÇáËɹ¹½¨¼«ÖÂÁ÷ͨµÄÊÓÆµ·þÎñ¡£

¶þ¡¢ÊµÕ½ÑÝÁ·£ºNginx100%ÊÓÆµÓÅ»¯ÉèÖÃÃØóÅ

ÔÚÃ÷È·ÁËNginxÔÚÊÓÆµÓÅ»¯·½ÃæµÄ½¹µãÓÅÊÆºó£¬½ÓÏÂÀ´ÎÒÃǽ«ÉîÈë̽ÌÖÏêϸµÄÉèÖÃÕ½ÂÔºÍʵ¼ù¼¼ÇÉ£¬ÈÃÄúÄܹ»½«NginxµÄDZÁ¦Ê©Õ¹µ½?¼«Ö£¬ÕæÕýʵÏÖ¡°100%ÊÓÆµÓÅ»¯¡±¡£

1.»º´æÕ½ÂÔµÄϸÄåµ÷ÓÅ£ºÁôסÿһ´Î¾«²Ê˲¼ä

NginxµÄproxy_cacheÄ£¿éÊÇʵÏÖ¸ßЧ»º´æµÄÒªº¦¡£¹ØÓÚÊÓÆµÎļþ£¬ÎÒÃÇͨ³£ÐèÒªÉèÖÃÒ»¸öרÃŵĻº´æÇøÓò£¬²¢ÉèÖúÏÀíµÄÓâÆÚʱ¼ä¡£

http{proxy_cache_path/var/cache/nginxlevels=1:2keys_zone=video_cache:100mmax_size=10ginactive=60muse_temp_path=off;server{listen80;server_nameyour_video_domain.com;location~*\.(mp4|mkv|avi|mov|flv|webm)${proxy_passhttp://your_backend_video_server;proxy_cachevideo_cache;proxy_cache_valid20030210m;#»º´æ200ºÍ302״̬ÂëµÄÏìÓ¦10·ÖÖÓproxy_cache_valid4041m;#»º´æ404״̬ÂëµÄÏìÓ¦1·ÖÖÓproxy_cache_key"$scheme$request_method$host$request_uri";add_headerX-Cache-Status$upstream_cache_status;}#...ÆäËûÉèÖÃ...}}proxy_cache_path:½ç˵ÁË»º´æÎļþµÄ´æ´¢Â·¾¶¡¢²ã¼¶¡¢»º´æÇøÓòÃû³Æ£¨video_cache£©¡¢ÄÚ´æ¹²ÏíÇø´óС£¨100m£©¡¢×î´ó»º´æ¿Õ¼ä£¨10g£©¡¢»º´æÎļþ²»»á¼ûµÄÓâÆÚʱ¼ä£¨60m£©¡£

use_temp_path=off¿ÉÒÔ×èÖ¹ÌØÁíÍâ?´ÅÅÌI/O¡£location~*\.(mp4|mkv|avi|mov|flv|webm)$:Æ¥Åä³£¼ûµÄÊÓÆµÎļþºó׺¡£proxy_passhttp://your_backend_video_server;:Ö¸¶¨ºó¶ËÊÓÆµÔ´·þÎñÆ÷¡£

proxy_cachevideo_cache;:ÆôÓÃÃûΪvideo_cacheµÄ»º´æÇøÓò¡£proxy_cache_valid20030210m;:ÉèÖöÔHTTP״̬ÂëΪ200ºÍ302µÄÏìÓ¦£¬»º´æ10·ÖÖÓ¡£Äú¿ÉÒÔÆ¾Ö¤ÊÓÆµÄÚÈݵĸüÐÂÆµÂʵ÷½âÕâ¸öʱ¼ä¡£

proxy_cache_key"$scheme$request_method$host$request_uri";:½ç˵»º´æµÄ¼ü£¬È·±£²î±ðµÄÇëÇóÄܹ»×¼È·Æ¥Åäµ½»º´æ¡£add_headerX-Cache-Status$upstream_cache_status;:Ìí¼ÓÒ»¸öÏìӦͷ£¬Àû±ãÄúÉó²é»º´æÖÀÖÐÇéÐΣ¨HIT¡¢MISS¡¢EXPIREDµÈ£©¡£

2.HTTP/2ºÍHTTP/3µÄ¸³ÄÜ£ºÌáËÙµÄаÊõ

È·±£ÄúµÄNginx°æ±¾Ö§³ÖHTTP/2»òHTTP/3£¬²¢ÔÚ·þÎñÆ÷ÉèÖÃÖÐÆôÓÃËüÃÇ¡£

server{listen443sslhttp2;#ÆôÓÃSSLºÍHTTP/2server_nameyour_video_domain.com;ssl_certificate/path/to/your/certificate.crt;ssl_certificate_key/path/to/your/private.key;#...ÆäËûSSLÏà¹ØÉèÖÃ...location/{#...ÄãµÄ?ÆäËûlocationÉèÖÃ...}}

ÈôÊÇÄúʹÓõÄÊǽÏа汾µÄNginx£¬²¢ÇÒ·þÎñÆ÷ÒѾ­°²ÅÅÁËQUICÄ£¿é£¬Äú»¹¿ÉÒÔÉèÖÃHTTP/3£º

server{listen443sslhttp2quicreuseport;#ÆôÓÃSSL,HTTP/2,QUICserver_nameyour_video_domain.com;#...SSLºÍQUICÏà¹ØÉèÖÃ...location/{#...ÄãµÄÆäËûlocationÉèÖÃ...}}

HTTP/2ºÍHTTP/3µÄÓ¦Óã¬ÌØÊâÊÇÆä¶à·¸´ÓÃÌØÕ÷£¬Äܹ»ÏÔÖøïÔÌ­ÊÓÆµ²¥?·ÅÀú³ÌÖÐÒò¶à¸ö·ÖƬÇëÇó¶ø±¬·¢µÄÑÓ³Ù£¬´ó·ùÌáÉýÊÓÆµµÄÆô¶¯ËÙÂʺÍÕûÌåµÄÁ÷ͨ¶È¡£

3.GzipºÍBrotliѹËõ£ºÎª¸¨Öú×ÊÔ´ÊÝÉí

ËäÈ»ÊÓÆµ×Ô¼ºÄÑÒÔѹËõ£¬µ«ÊÓÆµ²¥?·ÅÁÐ±í£¨.m3u8,.mpd£©ºÍ×ÖÄ»ÎļþµÈ?¸¨Öú×ÊÔ´£¬È´¿ÉÒÔÊÜÒæÓÚGzip»òBrotliѹËõ¡£

http{gzipon;gzip_typestext/plaintext/cssapplication/jsonapplication/javascripttext/xmlapplication/xmlapplication/xml+rsstext/javascriptimage/svg+xml;gzip_comp_level6;gzip_min_length1024;#ÈôÊÇ×°ÖÃÁËBrotliÄ£¿é£¬¿ÉÒÔ˼Á¿Ê¹ÓÃBrotli#brotlion;#brotli_typestext/plaintext/cssapplication/jsonapplication/javascripttext/xmlapplication/xmlapplication/xml+rsstext/javascriptimage/svg+xml;#brotli_comp_level4;#brotli_min_length1024;#...ÆäËûÉèÖÃ...}gzipon;:ÆôÓÃGzipѹËõ¡£

gzip_types:Ö¸¶¨ÐèҪѹËõµÄMIMEÀàÐÍ¡£gzip_comp_level:GzipѹËõ¼¶±ð£¬¼¶±ðÔ½¸ßѹËõÂÊÔ½¸ß£¬µ«CPUÏûºÄÒ²Ô½´ó¡£gzip_min_length:Ö¸¶¨×îСѹËõ³¤¶È£¬Ð¡Óڴ˳¤¶ÈµÄ²»»á±»Ñ¹Ëõ¡£

4.CDN¼¯³É£º½«ÄÚÈÝÍÆË͵½ÀëÓû§×î½üµÄµØ·½

¹ØÓÚÃæÏòÈ«ÇòÓû§µÄÊÓÆµ·þÎñ£¬ÓëCDN(ContentDeliveryNetwork)¼¯³ÉÊDZز»¿ÉÉٵġ£Nginx¿ÉÒÔ×÷ΪCDNµÄ»ØÔ´·þÎñÆ÷£¬»òÕßÖ±½Ó×÷Ϊ±ßÑØ½Úµã°²ÅÅ¡£

×÷Ϊ»ØÔ´·þÎñÆ÷:ÉèÖÃNginxµÄproxy_cacheÖ¸ÏòCDNµÄ»º´æ½Úµã£¬µ±CDN½Úµã»º´æÊ§Ð§Ê±£¬ÇëÇó»á»ØÔ´µ½Nginx¡£×÷Ϊ±ßÑØ½Úµã:Ö±½Ó°²ÅÅNginx×÷ΪCDNµÄ±ßÑØ½Úµã£¬³ä·ÖʹÓÃNginxµÄ¸ßÐÔÄÜ»ººÍ´æÄÜÁ¦£¬ÎªÓû§Ìṩ×î¿ìËÙÂʵÄÊÓÆµ·þÎñ¡£

5.Á÷Á¿¿ØÖÆÓëÇå¾²¼Ó¹Ì£ºÊØ»¤Á÷ͨÌåÑé

ΪÁËÓ¦¶ÔÍ»·¢Á÷Á¿ºÍDZÔڵĹ¥»÷£¬ÉèÖÃÁ÷Á¿¿ØÖÆÊÇÐëÒªµÄ¡£

http{#½ç˵һ¸öÇøÓò£¬Ã¿ÃëÔÊÐí100¸öÇëÇó£¬ÁîÅÆÍ°ÈÝÁ¿Îª100limit_req_zone$binary_remote_addrzone=mylimit:10mrate=100r/s;server{#...location~*\.(mp4|mkv|avi|mov|flv|webm)${proxy_passhttp://your_backend_video_server;proxy_cachevideo_cache;proxy_cache_valid20030210m;proxy_cache_valid4041m;proxy_cache_key"$scheme$request_method$host$request_uri";add_headerX-Cache-Status$upstream_cache_status;limit_reqzone=mylimitburst=100nodelay;#Ó¦ÓÃÁ÷Á¿ÏÞÖÆ}#...}}limit_req_zone:½ç˵һ¸öÃûΪmylimitµÄÇøÓò£¬ÒÔ¿Í»§¶ËIP($binary_remote_addr)×÷Ϊ±êʶ£¬ÔÊÐíÿÃë100¸öÇëÇó£¬ÁîÅÆÍ°ÈÝÁ¿Îª100¡£

limit_reqzone=mylimitburst=100nodelay;:ÔÚlocationÖÐÓ¦ÓøÃÏÞÖÆ£¬burst=100ÔÊÐí¶ÌÔݵÄÁè¼ÝÏÞÖÆ£¬nodelayÌåÏÖÁè¼ÝÏÞÖÆµÄ?ÇëÇóÁ¬Ã¦±»¾Ü¾ø¡£

6.¶¯Ì¬ÊÓÆµÁ÷ÓÅ»¯(HLS/DASH)

¹ØÓÚHLS(HTTPLiveStreaming)ºÍDASH(DynamicAdaptiveStreamingoverHTTP)µÈ×Ô˳Ӧ±ÈÌØÂÊÁ÷ýÌåЭÒ飬NginxͬÑùÌåÏÖ¾«²Ê¡£Æä¸ßЧµÄÎļþ´«?ÊäÄÜÁ¦¿ÉÒÔÈ·±£.ts»ò.m4sµÈýÌå·ÖƬÄܹ»¿ìËÙ¡¢Îȹ̵ش«Ê䏸Óû§¡£

ÅäºÏ»º´æ£¬×ÝÈ»ÊÇԢĿÈÈÃÅÊÓÆµ£¬Ò²Äܰü¹Ü¼«¸ßµÄ²¢·¢³ÐÔØÄÜÁ¦¡£

ͨ¹ýÒÔÉÏÕâЩÉèÖòß?ÂÔµÄ×éºÏÓ¦Óã¬Äú¿ÉÒÔ³ä·ÖÍÚ¾òNginxµÄDZÁ¦£¬´òÔìÒ»¸öÐÔÄÜ׿Խ¡¢ÌåÑ鼫ÖµÄÊÓÆµ·þÎñƽ̨¡£Àë±ð¿¨¶Ù£¬Óµ±§Á÷ͨ£¬ÈÃÄúµÄÓû§ÔÚԢĿÊÓÆµÊ±£¬ÏíÊܵ½Ø¨¹ÅδÓеijÁ?½þʽÌåÑ飡

ÔðÈα༭£º ·½±£ƒS
ÉùÃ÷£ºÖ¤È¯Ê±±¨Á¦ÕùÐÅÏ¢ÕæÊµ¡¢×¼È·£¬ÎÄÕÂÌá¼°ÄÚÈݽö¹©²Î¿¼£¬²»×é³ÉʵÖÊÐÔͶ×ʽ¨Ò飬¾Ý´Ë²Ù×÷Σº¦×Ôµ£
ÏÂÔØ¡°Ö¤È¯Ê±±¨¡±¹Ù·½APP£¬»ò¹Ø×¢¹Ù·½Î¢ÐŹ«Öںţ¬¼´¿ÉËæÊ±Ïàʶ¹ÉÊж¯Ì¬£¬¶´²ìÕþ²ßÐÅÏ¢£¬ÕÆÎղƲú»ú»á¡£
ÍøÓÑ̸ÂÛ
µÇ¼ºó¿ÉÒÔ½²»°
·¢ËÍ
ÍøÓÑ̸ÂÛ½ö¹©Æä±í´ïСÎÒ˽¼Ò¿´·¨£¬²¢²»Åúע֤ȯʱ±¨Ì¬¶È
ÔÝÎÞ̸ÂÛ
ΪÄãÍÆ¼ö
ÍøÕ¾µØÍ¼