{"id":2833,"date":"2017-10-30T17:45:16","date_gmt":"2017-10-30T09:45:16","guid":{"rendered":"http:\/\/cn.hostease.com\/xueyuan\/?p=2833"},"modified":"2025-01-26T15:47:57","modified_gmt":"2025-01-26T07:47:57","slug":"nginx-%e4%b9%8b-%e5%ae%9e%e7%8e%b0%e8%b0%83%e5%ba%a6%e5%8a%9f%e8%83%bd","status":"publish","type":"post","link":"https:\/\/cn.hostease.com\/xueyuan\/jishu\/linux\/nginx-%e4%b9%8b-%e5%ae%9e%e7%8e%b0%e8%b0%83%e5%ba%a6%e5%8a%9f%e8%83%bd\/","title":{"rendered":"Nginx \u4e4b \u5b9e\u73b0\u8c03\u5ea6\u529f\u80fd"},"content":{"rendered":"\n<p><strong>1&nbsp; \u6982\u8ff0<\/strong><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p>\u672c\u6587\u5c06\u4ecb\u7ecdngx_http_upstream_module\u6a21\u5757\u548cngx_stream_core_module\u6a21\u5757\u8fd9\u4e24\u4e2a\u6a21\u5757\u5b9e\u73b0nginx\u7684\u8c03\u5ea6\u529f\u80fd\u3002nginx\u53ef\u4ee5\u901a\u8fc7proxy\u529f\u80fd\uff0c\u5b9e\u73b0\u5c06\u4e0d\u540c\u5185\u5bb9\u7684\u8bbf\u95ee\u8c03\u5ea6\u5230\u5bf9\u5e94\u7684\u673a\u5668\u4e0a\u3002\u5b9e\u73b0\u4e86\u5e94\u7528\u7ea7\u7684\u8c03\u5ea6\uff0c\u76f8\u5173\u5185\u5bb9\u89c1\u535a\u5ba2\u300aNginx\u00a0 \u4e4b\u00a0 \u5b9e\u73b0\u4ee3\u7406\u529f\u80fd\u300b<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p><strong>2&nbsp; ngx_http_upstream_module<\/strong><strong>\u6a21\u5757<\/strong><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p>\u8be5\u6a21\u5757\u7528\u4e8e\u5c06\u591a\u4e2a\u670d\u52a1\u5668\u5b9a\u4e49\u6210\u670d\u52a1\u5668\u7ec4\uff0c\u800c\u7531proxy_pass,fastcgi_pass\u7b49\u6307\u4ee4\u8fdb\u884c\u5f15\u7528.\u6ce8\u610f\uff0c\u5982\u679cnginx\u4e0a\u6709\u8bbe\u7f6e\u4e86proxy_cache.\u90a3\u4e48\u8bbf\u95ee\u7684\u8d44\u6e90\u5982\u679c\u5728nginx\u4e0a\u5df2\u7ecf\u6709\u7f13\u5b58\u4e86\uff0c\u5c06\u4e0d\u4f1a\u628a\u8bf7\u6c42\u8f6c\u53d1\u7ed9\u540e\u53f0\u7684\u670d\u52a1\u5668\uff0c\u76f4\u63a5\u628a\u5c06\u7f13\u5b58\u8fd4\u56de\u7ed9\u5ba2\u6237\u7aef\uff0c\u5c31\u4e0d\u4f1a\u6709\u8c03\u5ea6\u7684\u6267\u884c\uff0c\u53ef\u80fd\u540c\u4e00\u8bbf\u95ee\u7684\u5f97\u5230\u7684\u7ed3\u679c\u662f\u76f8\u540c\u7684\u3002<\/p>\n\n\n\n<p><strong>.1\u3001upstream&nbsp;<\/strong><\/p>\n\n\n\n<p>upstream&nbsp; name { &#8230; }<\/p>\n\n\n\n<p>\u5b9a\u4e49\u540e\u7aef\u670d\u52a1\u5668\u7ec4\uff0c\u4f1a\u5f15\u5165\u4e00\u4e2a\u65b0\u7684\u4e0a\u4e0b\u6587\uff0c\u9ed8\u8ba4\u8c03\u5ea6\u7b97\u6cd5\u662fwrr<\/p>\n\n\n\n<p>Context: http<\/p>\n\n\n\n<div>\n<div id=\"highlighter_692625\" class=\"syntaxhighlighter  bash\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line number1 index0 alt2\">1<\/div>\n<div class=\"line number2 index1 alt1\">2<\/div>\n<div class=\"line number3 index2 alt2\">3<\/div>\n<div class=\"line number4 index3 alt1\">4<\/div>\n<div class=\"line number5 index4 alt2\">5<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"bash plain\">upstream&nbsp;httpdsrvs{<\/code><\/div>\n<div class=\"line number2 index1 alt1\"><code class=\"bash plain\">server&nbsp;...<\/code><\/div>\n<div class=\"line number3 index2 alt2\"><code class=\"bash plain\">server...<\/code><\/div>\n<div class=\"line number4 index3 alt1\"><code class=\"bash plain\">...<\/code><\/div>\n<div class=\"line number5 index4 alt2\"><code class=\"bash plain\">}<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n\n\n\n<p><strong>.2\u3001server<\/strong><\/p>\n\n\n\n<p>server&nbsp; address [parameters];<\/p>\n\n\n\n<p>\u5728upstream\u4e0a\u4e0b\u6587\u4e2dserver\u6210\u5458\uff0c\u4ee5\u53ca\u76f8\u5173\u7684\u53c2\u6570\uff1bContext:upstream<\/p>\n\n\n\n<p>address\u7684\u8868\u793a\u683c\u5f0f\uff1a<\/p>\n\n\n\n<p>unix:\/PATH\/TO\/SOME_SOCK_FILE<\/p>\n\n\n\n<p>IP[:PORT]<\/p>\n\n\n\n<p>HOSTNAME[:PORT]<\/p>\n\n\n\n<p>parameters\uff1a<\/p>\n\n\n\n<p>weight=number \u6743\u91cd\uff0c\u9ed8\u8ba4\u4e3a1<\/p>\n\n\n\n<p>max_conns\u8fde\u63a5\u540e\u7aef\u62a5\u52a1\u5668\u6700\u5927\u5e76\u53d1\u6d3b\u52a8\u8fde\u63a5\u6570\uff0c1.11.5\u540e\u652f\u6301<\/p>\n\n\n\n<p>max_fails=number\u5931\u8d25\u5c1d\u8bd5\u6700\u5927\u6b21\u6570\uff1b\u8d85\u51fa\u6b64\u5904\u6307\u5b9a\u7684\u6b21\u6570\u65f6\uff0cserver\u5c06\u88ab\u6807\u8bb0\u4e3a\u4e0d\u53ef\u7528,\u9ed8\u8ba4\u4e3a1<\/p>\n\n\n\n<p>fail_timeout=time\u540e\u7aef\u670d\u52a1\u5668\u6807\u8bb0\u4e3a\u4e0d\u53ef\u7528\u72b6\u6001\u7684\u8fde\u63a5\u8d85\u65f6\u65f6\u957f\uff0c\u9ed8\u8ba410s<\/p>\n\n\n\n<p>backup\u5c06\u670d\u52a1\u5668\u6807\u8bb0\u4e3a\u201c\u5907\u7528\u201d\uff0c\u5373\u6240\u6709\u670d\u52a1\u5668\u5747\u4e0d\u53ef\u7528\u65f6\u624d\u542f\u7528\uff0c\u76f8\u5f53\u4e8e\u662fsorry server\uff0c\u63d0\u793a\u7528\u6237\uff0c\u6ce8\u610f\uff0c\u8fd9\u91ccbackup\u4e0d\u8981\u752880\u7aef\u53e3\uff0c\u7528\u5176\u4ed6\u7684\u865a\u62df\u4e3b\u673a\u6765\u5145\u5f53sorry server,\u5982\u518d\u5f00\u4e00\u4e2a\u7aef\u53e38000<\/p>\n\n\n\n<p>down\u6807\u8bb0\u4e3a\u201c\u4e0d\u53ef\u7528\u201d\uff0c\u914d\u5408ip_hash\u4f7f\u7528\uff0c\u5b9e\u73b0\u7070\u5ea6\u53d1\u5e03\uff0c\u7070\u5ea6\u53d1\u5e03\uff0c\u6307\u5206\u6279\u8fdb\u884c\u53d1\u5e03\u4e0a\u7ebf\u3002<\/p>\n\n\n\n<p><strong>.3\u3001ip_hash<\/strong><\/p>\n\n\n\n<p>\u6e90\u5730\u5740hash\u8c03\u5ea6\u65b9\u6cd5<\/p>\n\n\n\n<p>\u6839\u636e\u6e90\u5730\u5740\u8fdb\u884c\u8c03\u5ea6\uff0c\u540c\u4e00\u4e2a\u6e90\u7684\u5ba2\u6237\u7aef\u8c03\u5ea6\u5230\u540c\u4e00\u53f0\u4e3b\u673a<\/p>\n\n\n\n<p><strong>.4\u3001least_conn<\/strong><\/p>\n\n\n\n<p>\u6700\u5c11\u8fde\u63a5\u8c03\u5ea6\u7b97\u6cd5\uff0c\u5f53server\u62e5\u6709\u4e0d\u540c\u7684\u6743\u91cd\u65f6\u5176\u4e3awlc\uff0c\u5f53\u6240\u6709\u540e\u7aef\u4e3b\u673a\u8fde\u63a5\u6570\u76f8\u540c\u65f6\uff0c\u5219\u4f7f\u7528wrr\uff0c\u9002\u7528\u4e8e\u957f\u8fde\u63a5<\/p>\n\n\n\n<p><strong>.5\u3001hash&nbsp;<\/strong><\/p>\n\n\n\n<p>hash&nbsp; &nbsp;key [consistent]\u57fa\u4e8e\u6307\u5b9a\u7684key\u7684hash\u8868\u6765\u5b9e\u73b0\u5bf9\u8bf7\u6c42\u7684\u8c03\u5ea6\uff0c\u6b64\u5904\u7684key\u53ef\u4ee5\u76f4\u63a5\u6587\u672c\u3001\u53d8\u91cf\u6216\u4e8c\u8005\u7ec4\u5408<\/p>\n\n\n\n<p>\u4f5c\u7528\uff1a\u5c06\u8bf7\u6c42\u5206\u7c7b\uff0c\u540c\u4e00\u7c7b\u8bf7\u6c42\u5c06\u53d1\u5f80\u540c\u4e00\u4e2aupstream server\uff0c\u4f7f\u7528consistent\u53c2\u6570\uff0c\u5c06\u4f7f\u7528ketama\u4e00\u81f4\u6027hash\u7b97\u6cd5\uff0c\u9002\u7528\u4e8e\u540e\u7aef\u662fCache\u670d\u52a1\u5668\uff08\u5982varnish\uff09\u65f6\u4f7f\u7528<\/p>\n\n\n\n<p>hash $request_uri&nbsp; consistent; #\u5176\u4e2d\uff0cconsistent\u4e00\u81f4\u6027\u7684hash<\/p>\n\n\n\n<p>hash $remote_addr;<\/p>\n\n\n\n<p><strong>.6\u3001keepalive&nbsp;\u8fde\u63a5\u6570N;<\/strong><\/p>\n\n\n\n<p>keepalive n;<\/p>\n\n\n\n<p>\u4e3a\u6bcf\u4e2aworker\u8fdb\u7a0b\u4fdd\u7559\u7684\u7a7a\u95f2\u7684\u957f\u8fde\u63a5\u6570\u91cf,\u53ef\u8282\u7ea6nginx\u7aef\u53e3\uff0c\u5e76\u51cf\u5c11\u8fde\u63a5\u7ba1\u7406\u7684\u6d88\u8017<\/p>\n\n\n\n<p><strong>.7\u3001health_check&nbsp;<\/strong><\/p>\n\n\n\n<p>health_check [parameters];<\/p>\n\n\n\n<p>\u5065\u5eb7\u72b6\u6001\u68c0\u6d4b\u673a\u5236\uff1b\u53ea\u80fd\u7528\u4e8elocation\u4e0a\u4e0b\u6587<\/p>\n\n\n\n<p>\u5e38\u7528\u53c2\u6570\uff1a<\/p>\n\n\n\n<p>interval=time\u68c0\u6d4b\u7684\u9891\u7387\uff0c\u9ed8\u8ba4\u4e3a5\u79d2<\/p>\n\n\n\n<p>fails=number\uff1a\u5224\u5b9a\u670d\u52a1\u5668\u4e0d\u53ef\u7528\u7684\u5931\u8d25\u68c0\u6d4b\u6b21\u6570\uff1b\u9ed8\u8ba4\u4e3a1\u6b21<\/p>\n\n\n\n<p>passes=number\uff1a\u5224\u5b9a\u670d\u52a1\u5668\u53ef\u7528\u7684\u5931\u8d25\u68c0\u6d4b\u6b21\u6570\uff1b\u9ed8\u8ba4\u4e3a1\u6b21<\/p>\n\n\n\n<p>uri=uri\uff1a\u505a\u5065\u5eb7\u72b6\u6001\u68c0\u6d4b\u6d4b\u8bd5\u7684\u76ee\u6807uri\uff1b\u9ed8\u8ba4\u4e3a\/<\/p>\n\n\n\n<p>match=NAME\uff1a\u5065\u5eb7\u72b6\u6001\u68c0\u6d4b\u7684\u7ed3\u679c\u8bc4\u4f30\u8c03\u7528\u6b64\u5904\u6307\u5b9a\u7684match\u914d\u7f6e\u5757<\/p>\n\n\n\n<p>\u6ce8\u610f\uff1a\u4ec5\u5bf9nginxplus\u6709\u6548\uff0cnginxplus\u4e3a\u5546\u4e1a\u7248\uff0c\u9700\u8981\u4ed8\u8d39<\/p>\n\n\n\n<p><strong>.8&nbsp;&nbsp;match<\/strong><\/p>\n\n\n\n<p>match name { &#8230; }<\/p>\n\n\n\n<p>\u5bf9backendserver\u505a\u5065\u5eb7\u72b6\u6001\u68c0\u6d4b\u65f6\uff0c\u5b9a\u4e49\u5176\u7ed3\u679c\u5224\u65ad\u673a\u5236\uff1b\u53ea\u80fd\u7528\u4e8ehttp\u4e0a\u4e0b\u6587<\/p>\n\n\n\n<p>.\u5e38\u7528\u7684\u53c2\u6570\uff1a<\/p>\n\n\n\n<p>status &nbsp;code[ code &#8230;]: \u671f\u671b\u7684\u54cd\u5e94\u72b6\u6001\u7801<\/p>\n\n\n\n<p>headerHEADER[operator value]\uff1a\u671f\u671b\u5b58\u5728\u54cd\u5e94\u9996\u90e8\uff0c\u4e5f\u53ef\u5bf9\u671f\u671b\u7684\u54cd\u5e94\u9996\u90e8\u7684\u503c\u57fa\u4e8e\u6bd4\u8f83\u64cd\u4f5c\u7b26\u548c\u503c\u8fdb\u884c\u6bd4\u8f83<\/p>\n\n\n\n<p>body\uff1a\u671f\u671b\u54cd\u5e94\u62a5\u6587\u7684\u4e3b\u4f53\u90e8\u5206\u5e94\u8be5\u6709\u7684\u5185\u5bb9<\/p>\n\n\n\n<p>\u6ce8\u610f\uff1a\u4ec5\u5bf9nginx plus\u6709\u6548<\/p>\n\n\n\n<p>\u4f8b\u5b50<\/p>\n\n\n\n<p>http\u914d\u7f6e\u6bb5\u5982\u4e0b<\/p>\n\n\n\n<div>\n<div id=\"highlighter_251302\" class=\"syntaxhighlighter  bash\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line number1 index0 alt2\">1<\/div>\n<div class=\"line number2 index1 alt1\">2<\/div>\n<div class=\"line number3 index2 alt2\">3<\/div>\n<div class=\"line number4 index3 alt1\">4<\/div>\n<div class=\"line number5 index4 alt2\">5<\/div>\n<div class=\"line number6 index5 alt1\">6<\/div>\n<div class=\"line number7 index6 alt2\">7<\/div>\n<div class=\"line number8 index7 alt1\">8<\/div>\n<div class=\"line number9 index8 alt2\">9<\/div>\n<div class=\"line number10 index9 alt1\">10<\/div>\n<div class=\"line number11 index10 alt2\">11<\/div>\n<div class=\"line number12 index11 alt1\">12<\/div>\n<div class=\"line number13 index12 alt2\">13<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"bash plain\">vim&nbsp;&nbsp;<\/code><code class=\"bash plain\">\/etc\/nginx\/nginx<\/code><code class=\"bash plain\">.conf<\/code><\/div>\n<div class=\"line number2 index1 alt1\"><code class=\"bash plain\">http&nbsp;{<\/code><\/div>\n<div class=\"line number3 index2 alt2\"><code class=\"bash plain\">......<\/code><\/div>\n<div class=\"line number4 index3 alt1\"><code class=\"bash spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"bash plain\">upstream&nbsp;websrvs&nbsp;{<\/code><\/div>\n<div class=\"line number5 index4 alt2\"><code class=\"bash spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"bash plain\">server&nbsp;172.18.50.61:80&nbsp;weight=1;<\/code><\/div>\n<div class=\"line number6 index5 alt1\"><code class=\"bash spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"bash comments\">#server&nbsp;172.18.50.61:80&nbsp;weight=1&nbsp;down;<\/code><\/div>\n<div class=\"line number7 index6 alt2\"><code class=\"bash spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"bash plain\">server&nbsp;172.18.50.65:80&nbsp;weight=2;<\/code><\/div>\n<div class=\"line number8 index7 alt1\"><code class=\"bash spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"bash plain\">server&nbsp;127.0.0.1:8000&nbsp;backup;<\/code><\/div>\n<div class=\"line number9 index8 alt2\"><code class=\"bash spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"bash comments\">#ip_hash;<\/code><\/div>\n<div class=\"line number10 index9 alt1\"><code class=\"bash spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"bash comments\">#least_conn;<\/code><\/div>\n<div class=\"line number11 index10 alt2\"><code class=\"bash spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"bash comments\">#hash&nbsp;$request_uri;<\/code><\/div>\n<div class=\"line number12 index11 alt1\"><code class=\"bash spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"bash plain\">}&nbsp;<\/code><\/div>\n<div class=\"line number13 index12 alt2\"><code class=\"bash plain\">}<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n\n\n\n<p>server\u914d\u7f6e\u6bb5\u5982\u4e0b<\/p>\n\n\n\n<div>\n<div id=\"highlighter_412723\" class=\"syntaxhighlighter  bash\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line number1 index0 alt2\">1<\/div>\n<div class=\"line number2 index1 alt1\">2<\/div>\n<div class=\"line number3 index2 alt2\">3<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"bash spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"bash plain\">location&nbsp;\/&nbsp;{&nbsp;<\/code><\/div>\n<div class=\"line number2 index1 alt1\"><code class=\"bash spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"bash plain\">proxy_pass&nbsp;http:<\/code><code class=\"bash plain\">\/\/websrvs<\/code><code class=\"bash plain\">;<\/code><\/div>\n<div class=\"line number3 index2 alt2\"><code class=\"bash spaces\">&nbsp;&nbsp;&nbsp;<\/code><code class=\"bash plain\">}<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p><strong>3&nbsp; ngx_stream_core_module<\/strong><strong>\u6a21\u5757<\/strong><\/p>\n\n\n\n<p>\u5b9e\u73b0\u4ee3\u7406\u57fa\u4e8eTCP\uff0cUDP (1.9.13),UNIX-domain sockets\u7684\u6570\u636e\u6d41\u3002\u5de5\u4f5c\u4e8e\u4f20\u8f93\u5c42\u7684\u53cd\u5411\u4ee3\u7406\u6216\u8c03\u5ea6\u5668\uff0c\u8fd9\u4e2a\u662f\u548chttp\u914d\u7f6e\u6bb5\u5e73\u884c\u7684\u914d\u7f6e\u3002<\/p>\n\n\n\n<p><strong>.1&nbsp;&nbsp;proxy_pass<\/strong><\/p>\n\n\n\n<p>proxy_pass&nbsp; address;\u6307\u5b9a\u540e\u7aef\u670d\u52a1\u5668\u5730\u5740<\/p>\n\n\n\n<p><strong>.2&nbsp;&nbsp;proxy_timeout<\/strong><\/p>\n\n\n\n<p>proxy_timeout&nbsp; timeout;\u65e0\u6570\u636e\u4f20\u8f93\u65f6\uff0c\u4fdd\u6301\u8fde\u63a5\u72b6\u6001\u7684\u8d85\u65f6\u65f6\u957f\uff0c\u9ed8\u8ba4\u4e3a10m<\/p>\n\n\n\n<p><strong>.3&nbsp;proxy_connect_timeout<\/strong><\/p>\n\n\n\n<p>proxy_connect_timeout&nbsp; time;\u8bbe\u7f6enginx\u4e0e\u88ab\u4ee3\u7406\u7684\u670d\u52a1\u5668\u5c1d\u8bd5\u5efa\u7acb\u8fde\u63a5\u7684\u8d85\u65f6\u65f6\u957f\uff0c\u9ed8\u8ba4\u4e3a60s<\/p>\n\n\n\n<p><strong>4&nbsp; \u8bed\u6cd5\u683c\u5f0f<\/strong><\/p>\n\n\n\n<p><strong>.4.1\u3001stream{ &#8230; }<\/strong><\/p>\n\n\n\n<p>\u5b9a\u4e49stream\u76f8\u5173\u7684\u670d\u52a1\uff1bContext:main<\/p>\n\n\n\n<div>\n<div id=\"highlighter_31505\" class=\"syntaxhighlighter  bash\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line number1 index0 alt2\">1<\/div>\n<div class=\"line number2 index1 alt1\">2<\/div>\n<div class=\"line number3 index2 alt2\">3<\/div>\n<div class=\"line number4 index3 alt1\">4<\/div>\n<div class=\"line number5 index4 alt2\">5<\/div>\n<div class=\"line number6 index5 alt1\">6<\/div>\n<div class=\"line number7 index6 alt2\">7<\/div>\n<div class=\"line number8 index7 alt1\">8<\/div>\n<div class=\"line number9 index8 alt2\">9<\/div>\n<div class=\"line number10 index9 alt1\">10<\/div>\n<div class=\"line number11 index10 alt2\">11<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"bash plain\">stream&nbsp;{<\/code><\/div>\n<div class=\"line number2 index1 alt1\"><code class=\"bash plain\">upstream&nbsp;telnetsrvs{<\/code><\/div>\n<div class=\"line number3 index2 alt2\"><code class=\"bash plain\">server&nbsp;192.168.22.2:23;&nbsp;<\/code><\/div>\n<div class=\"line number4 index3 alt1\"><code class=\"bash plain\">server&nbsp;192.168.22.3:23;&nbsp;<\/code><\/div>\n<div class=\"line number5 index4 alt2\"><code class=\"bash plain\">least_conn;<\/code><\/div>\n<div class=\"line number6 index5 alt1\"><code class=\"bash plain\">}<\/code><\/div>\n<div class=\"line number7 index6 alt2\"><code class=\"bash plain\">server&nbsp;{<\/code><\/div>\n<div class=\"line number8 index7 alt1\"><code class=\"bash plain\">listen&nbsp;10.1.0.6:23;<\/code><\/div>\n<div class=\"line number9 index8 alt2\"><code class=\"bash plain\">proxy_pass&nbsp;&nbsp;telnetsrvs;<\/code><\/div>\n<div class=\"line number10 index9 alt1\"><code class=\"bash plain\">}<\/code><\/div>\n<div class=\"line number11 index10 alt2\"><code class=\"bash plain\">}<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n\n\n\n<p><strong>.4.2\u3001listen<\/strong><\/p>\n\n\n\n<div>\n<div id=\"highlighter_361337\" class=\"syntaxhighlighter  bash\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line number1 index0 alt2\">1<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"bash plain\">listen&nbsp;address:port&nbsp;[ssl]&nbsp;[udp][proxy_protocol]&nbsp;&nbsp;[backlog=number]&nbsp;[bind][ipv6only=on|off]&nbsp;[reuseport]&nbsp;[so_keepalive=on|off&nbsp;[keepidle]:[keepintvl]:[keepcnt]];<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n\n\n\n<p><strong>5&nbsp; \u793a\u4f8b<br><\/strong><\/p>\n\n\n\n<div>\n<div id=\"highlighter_220756\" class=\"syntaxhighlighter  bash\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line number1 index0 alt2\">1<\/div>\n<div class=\"line number2 index1 alt1\">2<\/div>\n<div class=\"line number3 index2 alt2\">3<\/div>\n<div class=\"line number4 index3 alt1\">4<\/div>\n<div class=\"line number5 index4 alt2\">5<\/div>\n<div class=\"line number6 index5 alt1\">6<\/div>\n<div class=\"line number7 index6 alt2\">7<\/div>\n<div class=\"line number8 index7 alt1\">8<\/div>\n<div class=\"line number9 index8 alt2\">9<\/div>\n<div class=\"line number10 index9 alt1\">10<\/div>\n<div class=\"line number11 index10 alt2\">11<\/div>\n<div class=\"line number12 index11 alt1\">12<\/div>\n<div class=\"line number13 index12 alt2\">13<\/div>\n<div class=\"line number14 index13 alt1\">14<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"bash plain\">vim&nbsp;&nbsp;<\/code><code class=\"bash plain\">\/etc\/nginx\/nginx<\/code><code class=\"bash plain\">.conf<\/code><\/div>\n<div class=\"line number2 index1 alt1\"><code class=\"bash plain\">stream&nbsp;{<\/code><\/div>\n<div class=\"line number3 index2 alt2\"><code class=\"bash plain\">upstream&nbsp;telnetsrvs&nbsp;{<\/code><\/div>\n<div class=\"line number4 index3 alt1\"><code class=\"bash spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"bash plain\">server&nbsp;172.18.50.61:23;<\/code><\/div>\n<div class=\"line number5 index4 alt2\"><code class=\"bash spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"bash plain\">server&nbsp;172.18.50.75:23;<\/code><\/div>\n<div class=\"line number6 index5 alt1\"><code class=\"bash spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"bash plain\">least_conn;<\/code><\/div>\n<div class=\"line number7 index6 alt2\"><code class=\"bash spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"bash plain\">}<\/code><\/div>\n<div class=\"line number8 index7 alt1\"><code class=\"bash plain\">server&nbsp;{<\/code><\/div>\n<div class=\"line number9 index8 alt2\"><code class=\"bash spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"bash plain\">listen&nbsp;&nbsp;2323;&nbsp;<\/code><code class=\"bash comments\">#\u6ce8\u610f\uff0c\u8fd9\u91cc\u7684\u7aef\u53e3\u4e0d\u80fd\u662f\u4ee3\u7406\u670d\u52a1\u5668\u4e0a\u5df2\u7ecf\u4f7f\u7528\u7684\u7aef\u53e3\uff0c\u598223\uff0c\u5426\u5219\u5c06\u4e0d\u4f1a\u8c03\u5ea6<\/code><\/div>\n<div class=\"line number10 index9 alt1\"><code class=\"bash plain\">proxy_pass&nbsp;telnetsrvs;<\/code><\/div>\n<div class=\"line number11 index10 alt2\"><code class=\"bash plain\">proxy_timeout&nbsp;60s;<\/code><\/div>\n<div class=\"line number12 index11 alt1\"><code class=\"bash plain\">proxy_connect_timeout10s;<\/code><\/div>\n<div class=\"line number13 index12 alt2\"><code class=\"bash spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"bash plain\">}<\/code><\/div>\n<div class=\"line number14 index13 alt1\"><code class=\"bash plain\">}<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n","protected":false},"excerpt":{"rendered":"<p>1&nbsp; \u6982\u8ff0 \u672c\u6587\u5c06\u4ecb\u7ecdngx_http_upstream_module\u6a21\u5757\u548cngx_stream_c &#8230; <a title=\"Nginx \u4e4b \u5b9e\u73b0\u8c03\u5ea6\u529f\u80fd\" class=\"read-more\" href=\"https:\/\/cn.hostease.com\/xueyuan\/jishu\/linux\/nginx-%e4%b9%8b-%e5%ae%9e%e7%8e%b0%e8%b0%83%e5%ba%a6%e5%8a%9f%e8%83%bd\/\" aria-label=\"\u9605\u8bfb Nginx \u4e4b \u5b9e\u73b0\u8c03\u5ea6\u529f\u80fd\">\u9605\u8bfb\u66f4\u591a<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[49],"tags":[148],"class_list":["post-2833","post","type-post","status-publish","format-standard","hentry","category-linux","tag-nginx"],"aioseo_notices":[],"jetpack_featured_media_url":"","jetpack-related-posts":[],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/cn.hostease.com\/xueyuan\/wp-json\/wp\/v2\/posts\/2833","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cn.hostease.com\/xueyuan\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/cn.hostease.com\/xueyuan\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/cn.hostease.com\/xueyuan\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/cn.hostease.com\/xueyuan\/wp-json\/wp\/v2\/comments?post=2833"}],"version-history":[{"count":3,"href":"https:\/\/cn.hostease.com\/xueyuan\/wp-json\/wp\/v2\/posts\/2833\/revisions"}],"predecessor-version":[{"id":9807,"href":"https:\/\/cn.hostease.com\/xueyuan\/wp-json\/wp\/v2\/posts\/2833\/revisions\/9807"}],"wp:attachment":[{"href":"https:\/\/cn.hostease.com\/xueyuan\/wp-json\/wp\/v2\/media?parent=2833"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cn.hostease.com\/xueyuan\/wp-json\/wp\/v2\/categories?post=2833"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cn.hostease.com\/xueyuan\/wp-json\/wp\/v2\/tags?post=2833"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}