{
  "version": "https://jsonfeed.org/version/1", 
  "title": "Apache", 
  "description": "Apache HTTP Server", 
  "home_page_url": "https://www.v2ex.com/go/apache", 
  "feed_url": "https://www.v2ex.com/feed/apache.json", 
  "icon": "https://cdn.v2ex.com/navatar/76dc/611d/128_large.png?m=1348528357", 
  "favicon": "https://cdn.v2ex.com/navatar/76dc/611d/128_normal.png?m=1348528357", 
  "items": [
    {
      "author": {
        "url": "https://www.v2ex.com/member/CamelName", 
        "name": "CamelName", 
        "avatar": "https://cdn.v2ex.com/avatar/4c77/567c/517440_large.png?m=1728214794"
      }, 
      "url": "https://www.v2ex.com/t/1077927", 
      "date_modified": "2024-10-06T11:48:12+00:00", 
      "content_html": "<p>\u4e3b\u673a\u4e0a\u6709\u4e24\u4e2a web \u670d\u52a1\uff0c\u5206\u522b\u5360\u7528 4000 \u7aef\u53e3\u548c 3000 \u7aef\u53e3\uff0c\u57fa\u4e8e\u57df\u540d+\u7aef\u53e3\u53ef\u6210\u529f\u8bbf\u95ee</p>\n<p>\u5e0c\u671b\u5b9e\u73b0\u5b50\u57df\u540d\u8bbf\u95ee\u5bf9\u5e94\u7aef\u53e3\uff0c\u5982\u4e0b\uff1a</p>\n<p><a href=\"http://sub1.domain.com\" rel=\"nofollow\">sub1.domain.com</a> -- ip:3000</p>\n<p><a href=\"http://sub2.domain.com\" rel=\"nofollow\">sub2.domain.com</a> -- ip:4000</p>\n<h2>\u6dfb\u52a0\u57df\u540d\u89e3\u6790</h2>\n<p>\u5728\u57df\u540d\u89e3\u6790\u4f9b\u5e94\u5546\u5904\u5b8c\u6210\u5982\u4e0b\u914d\u7f6e</p>\n<p><img alt=\"20241006-1910-Fig-1\" class=\"embedded_image\" loading=\"lazy\" referrerpolicy=\"no-referrer\" rel=\"noreferrer\" src=\"https://tuchuang-wangpeng.oss-cn-hangzhou.aliyuncs.com/tuchuang-wangpeng/20241006-1910-Fig-1.png\"/></p>\n<h2>Apache2 \u53cd\u5411\u4ee3\u7406\u914d\u7f6e</h2>\n<p>\u53c2\u8003\u4ee5\u4e0b\u6b65\u9aa4\uff0c\u5728\u670d\u52a1\u5668\u4e0a\u5b8c\u6210 apache2 \u53cd\u5411\u4ee3\u7406\u914d\u7f6e\u5b50 </p>\n<p>\u5728 Apache \u4e2d\uff0c\u4f60\u53ef\u4ee5\u4f7f\u7528<code>mod_proxy</code>\u6a21\u5757\u6765\u8bbe\u7f6e\u53cd\u5411\u4ee3\u7406\uff0c\u4ece\u800c\u9690\u85cf\u540e\u7aef\u670d\u52a1\u7684\u771f\u5b9e\u7aef\u53e3\u53f7\u3002\u901a\u8fc7\u8fd9\u79cd\u65b9\u5f0f\uff0c\u7528\u6237\u8bbf\u95ee\u5b50\u57df\u540d\u65f6\u5c31\u50cf\u8bbf\u95ee\u666e\u901a\u7684 HTTP \u6216 HTTPS \u7f51\u7ad9\u4e00\u6837\uff0c\u800c\u4e0d\u4f1a\u770b\u5230\u540e\u7aef\u670d\u52a1\u8fd0\u884c\u7684\u5177\u4f53\u7aef\u53e3\u3002</p>\n<p>\u4ee5\u4e0b\u662f\u57fa\u4e8e Apache \u5b8c\u6210\u53cd\u4ee3\u914d\u7f6e\u7684\u6b65\u9aa4\uff1a</p>\n<ol>\n<li>\n<p><strong>\u786e\u4fdd\u5b89\u88c5\u4e86 Apache \u548c\u5fc5\u8981\u7684\u6a21\u5757</strong>\uff1a\n\u786e\u4fdd\u4f60\u7684 Apache \u670d\u52a1\u5668\u5df2\u7ecf\u5b89\u88c5\u4e86<code>mod_proxy</code>\u3001<code>mod_proxy_http</code>\u7b49\u6a21\u5757\u3002\u5982\u679c\u6ca1\u6709\u5b89\u88c5\uff0c\u53ef\u4ee5\u901a\u8fc7\u4ee5\u4e0b\u547d\u4ee4\u5b89\u88c5\uff08\u4ee5 Debian/Ubuntu \u7cfb\u7edf\u4e3a\u4f8b\uff09\uff1a</p>\n<pre><code class=\"language-bash\">sudo a2enmod proxy\nsudo a2enmod proxy_http\n</code></pre>\n<p>\u5b89\u88c5\u5b8c\u6210\u540e\u9700\u8981\u91cd\u542f Apache \u670d\u52a1\uff1a</p>\n<pre><code class=\"language-bash\">sudo systemctl restart apache2\n</code></pre>\n</li>\n<li>\n<p><strong>\u914d\u7f6e\u865a\u62df\u4e3b\u673a</strong>\uff1a\n\u5728 Apache \u7684\u914d\u7f6e\u6587\u4ef6\u76ee\u5f55\u4e0b\uff08\u901a\u5e38\u662f<code>/etc/apache2/sites-available/</code>\uff09\uff0c\u521b\u5efa\u4e00\u4e2a\u65b0\u7684\u865a\u62df\u4e3b\u673a\u914d\u7f6e\u6587\u4ef6\uff0c\u6216\u8005\u7f16\u8f91\u73b0\u6709\u7684\u914d\u7f6e\u6587\u4ef6\u3002\u5047\u8bbe\u4f60\u60f3\u8981\u4e3a\u5b50\u57df\u540d<code><a href=\"http://service.example.com\" rel=\"nofollow\">service.example.com</a></code>\u914d\u7f6e\u53cd\u5411\u4ee3\u7406\uff0c\u5e76\u4e14\u8be5\u5b50\u57df\u540d\u5c06\u6307\u5411\u672c\u5730\u673a\u5668\u4e0a\u8fd0\u884c\u7684\u4e00\u4e2a\u670d\u52a1\uff0c\u4f8b\u5982\u8fd0\u884c\u5728 3000 \u7aef\u53e3\u4e0a\u7684 Web \u5e94\u7528\u3002</p>\n</li>\n<li>\n<p><strong>\u6dfb\u52a0\u53cd\u5411\u4ee3\u7406\u914d\u7f6e</strong>\uff1a\n\u7f16\u8f91\u914d\u7f6e\u6587\u4ef6\u5e76\u6dfb\u52a0\u5982\u4e0b\u5185\u5bb9\uff1a</p>\n<pre><code class=\"language-apache\">&lt;VirtualHost *:80&gt;\n    ServerName service.example.com\n\n    # \u53ef\u9009\uff1a\u91cd\u5b9a\u5411\u6240\u6709\u8bf7\u6c42\u5230 HTTPS\n    Redirect permanent / https://service.example.com/\n\n&lt;/VirtualHost&gt;\n\n&lt;IfModule mod_ssl.c&gt;\n    &lt;VirtualHost *:443&gt;\n        ServerName service.example.com\n\n        # SSL \u8bc1\u4e66\u914d\u7f6e\n        SSLEngine on\n        SSLCertificateFile /path/to/certificate.crt\n        SSLCertificateKeyFile /path/to/private.key\n        # \u5982\u679c\u6709\u4e2d\u95f4\u8bc1\u4e66\n        SSLCertificateChainFile /path/to/chain.pem\n\n        # \u5f00\u542f\u65e5\u5fd7\u8bb0\u5f55\n        ErrorLog ${APACHE_LOG_DIR}/error.log\n        CustomLog ${APACHE_LOG_DIR}/access.log combined\n\n        # \u53cd\u5411\u4ee3\u7406\u914d\u7f6e\n        ProxyRequests Off\n        &lt;Proxy *&gt;\n            Order deny,allow\n            Allow from all\n        &lt;/Proxy&gt;\n        ProxyPass / http://localhost:3000/\n        ProxyPassReverse / http://localhost:3000/\n    &lt;/VirtualHost&gt;\n&lt;/IfModule&gt;\n</code></pre>\n<p>\u8fd9\u4e2a\u914d\u7f6e\u505a\u4e86\u51e0\u4ef6\u4e8b\uff1a</p>\n<ul>\n<li>\u8bbe\u7f6e\u4e86\u4e00\u4e2a\u76d1\u542c 80 \u7aef\u53e3\u7684\u865a\u62df\u4e3b\u673a\uff0c\u5b83\u4f1a\u628a\u6240\u6709\u8bf7\u6c42\u6c38\u4e45\u91cd\u5b9a\u5411\u5230 HTTPS \u3002</li>\n<li>\u8bbe\u7f6e\u4e86\u4e00\u4e2a\u76d1\u542c 443 \u7aef\u53e3\u7684\u5b89\u5168\u865a\u62df\u4e3b\u673a\uff0c\u7528\u4e8e\u5904\u7406\u52a0\u5bc6\u8fde\u63a5\u3002</li>\n<li>\u914d\u7f6e\u4e86 SSL \u8bc1\u4e66\u3002</li>\n<li>\u542f\u7528\u4e86\u53cd\u5411\u4ee3\u7406\uff0c\u5e76\u6307\u5b9a\u4e86\u540e\u7aef\u670d\u52a1\u7684\u5730\u5740\uff08\u8fd9\u91cc\u5047\u8bbe\u662f\u540c\u4e00\u53f0\u673a\u5668\u4e0a\u7684 8080 \u7aef\u53e3\uff09\u3002</li>\n</ul>\n</li>\n<li>\n<p><strong>\u542f\u7528\u7ad9\u70b9\u5e76\u91cd\u542f Apache</strong>\uff1a\n\u4fdd\u5b58\u66f4\u6539\u540e\u7684\u914d\u7f6e\u6587\u4ef6\uff0c\u7136\u540e\u542f\u7528\u8fd9\u4e2a\u7ad9\u70b9\u914d\u7f6e\uff1a</p>\n<pre><code class=\"language-bash\">sudo a2ensite your-config-file.conf\nsudo systemctl reload apache2\n</code></pre>\n</li>\n<li>\n<p><strong>\u6d4b\u8bd5\u914d\u7f6e</strong>\uff1a\n\u4f7f\u7528\u6d4f\u89c8\u5668\u6216\u5176\u4ed6\u5de5\u5177\uff08\u5982 curl \uff09\u8bbf\u95ee<code><a href=\"http://service.example.com\" rel=\"nofollow\">http://service.example.com</a></code>\uff0c\u5e94\u8be5\u4f1a\u88ab\u81ea\u52a8\u91cd\u5b9a\u5411\u5230<code><a href=\"https://service.example.com\" rel=\"nofollow\">https://service.example.com</a></code>\uff0c\u5e76\u4e14\u6700\u7ec8\u53ef\u4ee5\u770b\u5230\u8fd0\u884c\u5728 8080 \u7aef\u53e3\u4e0a\u7684\u670d\u52a1\u5185\u5bb9\u3002</p>\n</li>\n</ol>\n<h2>\u95ee\u9898</h2>\n<p>\u5b8c\u6210\u914d\u7f6e\u540e\uff0c\u8bbf\u95ee<code><a href=\"http://sub1.example.com\" rel=\"nofollow\">http://sub1.example.com</a></code> \uff0c\u65e0\u6cd5\u8bbf\u95ee\uff0c\u63d0\u793a 502 </p>\n<h2>\u8bf7\u6559</h2>\n<ol>\n<li>\n<p>\u4e0a\u8ff0\u914d\u7f6e\u65b9\u6cd5\u53ef\u80fd\u662f\u54ea\u91cc\u51fa\u9519\u4e86\uff1f\u8bf7\u6709\u5b9e\u64cd\u7ecf\u9a8c\u7684\u5927\u4f6c\u6307\u5bfc\u4e0b</p>\n</li>\n<li>\n<p>\u9664\u4e86\u4e0a\u9762\u8fd9\u4e2a\u65b9\u6cd5\uff0c\u6709\u6ca1\u6709\u5176\u4ed6\u65b9\u6cd5\uff1f\uff08\u5df2\u5c1d\u8bd5\u5b9d\u5854\u9762\u677f\uff09</p>\n</li>\n</ol>\n", 
      "date_published": "2024-10-06T11:44:33+00:00", 
      "title": "\u8bf7\u6559\u4e0b Apache2 \u4ee3\u7406\u4e8c\u7ea7\u57df\u540d\u7684\u95ee\u9898", 
      "id": "https://www.v2ex.com/t/1077927"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/tianmao", 
        "name": "tianmao", 
        "avatar": "https://cdn.v2ex.com/gravatar/3d574e35aa7243298a52ccb418cb87ce?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1053728", 
      "title": "Apache \u9519\u8bef\uff1a(20014)Internal error", 
      "id": "https://www.v2ex.com/t/1053728", 
      "date_published": "2024-06-30T09:31:36+00:00", 
      "content_html": "\u8bf7\u95ee\u8fd9\u4e2a\u4ec0\u4e48\u9519\u8bef"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/yucho", 
        "name": "yucho", 
        "avatar": "https://cdn.v2ex.com/gravatar/e3f2c8c9f3557961b88c5e79fbcf4d0d?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/906207", 
      "date_modified": "2023-01-03T03:20:11+00:00", 
      "content_html": "<p>\u6211\u60f3\u8981\u7528 Apache \u53cd\u4ee3 DuckDuckGo \uff0c\u4e3b\u9875\u548c\u641c\u7d22\u9875\u9762\u90fd\u6ca1\u95ee\u9898\uff0c\u4f46\u662f\u641c\u7d22\u9875\u9762\u7684\u57df\u540d\u4e3a <a href=\"http://external-content.duckduckgo.com\" rel=\"nofollow\">external-content.duckduckgo.com</a> \u7684\u56fe\u7247\u65e0\u6cd5\u52a0\u8f7d\u3002\u5c1d\u8bd5\u4f7f\u7528 Substitute \u6307\u4ee4\u66ff\u6362\uff0c\u5374\u6ca1\u6709\u6548\u679c\u3002\n\u6211\u7684\u90e8\u5206\u914d\u7f6e\u6587\u4ef6\u5185\u5bb9\uff1a</p>\n<pre><code>ProxyVia On\nSSLProxyEngine On\nRequestHeader set Front-End-Https \"On\"\n# \u5fc5\u987b\u8bbe\u7f6e\uff0c\u5426\u5219\u65e0\u6cd5\u5168\u5c40\u66ff\u6362\nRequestHeader set Accept-Encoding \"\"\n#\u7981\u7528\u540c\u6e90\u7b56\u7565\uff0c\u5426\u5219 DuckDuckGo \u8d44\u6e90\u65e0\u6cd5\u52a0\u8f7d\nHeader unset Content-Security-Policy\n# \u53cd\u4ee3\u5730\u5740\nProxyPass \"/\" \"https://duckduckgo.com/\"\nProxyPassReverse \"/\" \"https://duckduckgo.com/\"\nProxyPassReverseCookieDomain \"duckduckgo.com\" \"ddg.example.com\"\nAddOutputFilterByType SUBSTITUTE text/html text/css text/javascript application/javascript\n# \u5728\u5176\u4ed6\u7684\u72b6\u6001\u7801\u9875\u9762\u4e5f\u8fdb\u884c\u66ff\u6362\nSetEnv filter-errordocs\n# \u66ff\u6362\u89c4\u5219\nSubstitute \"s|external-content.duckduckgo.com|ddgec.example.com|ni\"\nSubstitute \"s|duckduckgo.com|ddg.example.com|ni\"\n</code></pre>\n<p>\u53cd\u4ee3 Google \u65f6\u4e5f\u9047\u5230\u4e86 recaptcha \u9a8c\u8bc1\u7801\uff0c\u65e0\u6cd5\u6b63\u5e38\u4f7f\u7528\u3002\n\u6c42\u5927\u4f6c\u5e2e\u52a9\u3002</p>\n", 
      "date_published": "2023-01-03T03:13:37+00:00", 
      "title": "\u4f7f\u7528 Apache \u53cd\u4ee3 DuckDuckGo\uff0c\u5982\u4f55\u5904\u7406 external-content.duckduckgo.com\uff1f\u53cd\u4ee3 Google \u65f6\u9047\u5230 recaptcha \u9a8c\u8bc1\u7801\u53c8\u600e\u4e48\u89e3\u51b3\uff1f", 
      "id": "https://www.v2ex.com/t/906207"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/wzx155", 
        "name": "wzx155", 
        "avatar": "https://cdn.v2ex.com/avatar/d76a/28c8/489744_large.png?m=1608095013"
      }, 
      "url": "https://www.v2ex.com/t/840709", 
      "title": "\u5927\u4f6c\u4eec\uff0c apache \u670d\u52a1\u5668\u914d\u7f6e\u865a\u62df\u4e3b\u673a\uff0c\u914d\u7f6e\u7981\u6b62\u6240\u6709\u975e\u6cd5\u57df\u540d\u65f6\u3002", 
      "id": "https://www.v2ex.com/t/840709", 
      "date_published": "2022-03-16T03:32:25+00:00", 
      "content_html": "\u5927\u4f6c\u4eec\uff0capache \u670d\u52a1\u5668\u914d\u7f6e\u865a\u62df\u4e3b\u673a\uff0c\u914d\u7f6e\u7981\u6b62\u6240\u6709\u975e\u6cd5\u57df\u540d\u65f6\uff0c<br /><br />#\u7981\u6b62\u6240\u6709\u975e\u6cd5\u57df\u540d  \ufeff <br /><br />&lt;VirtualHost *:80&gt;  \ufeff     <br /><br />      ServerName \u670d\u52a1\u5668 ip  \ufeff     <br /><br />      ServerAlias *  \ufeff     <br /><br />       &lt;Location /&gt;  \ufeff       <br /><br />          Order Allow,Deny  \ufeff        <br /><br />          Deny from all  \ufeff    <br /><br />       &lt;/Location&gt; <br /><br /> &lt;/VirtualHost&gt;\u3002<br /><br />apache \u662f\u5b89\u88c5\u5728\u5185\u90e8\u670d\u52a1\u5668\u4e0a\uff0c\u6709\u4e00\u4e2a\u670d\u52a1\u5668 ip \uff0c\u7136\u540e\u628a\u670d\u52a1\u5668\u6620\u5c04\u5230\u5916\u7f51 ip \u4e0a\u63d0\u4f9b\u5916\u7f51\u4f7f\u7528\u3002\u5728\u8fd9\u4e2a\u914d\u7f6e\u9879\u4e2d\uff0c \u201cServerName \u670d\u52a1\u5668 ip\u201d \u4e2d\u7684\u670d\u52a1\u5668 ip \u662f\u586b\u5185\u7f51 ip \u8fd8\u662f\u5916\u7f51 ip"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/nelsonken", 
        "name": "nelsonken", 
        "avatar": "https://cdn.v2ex.com/avatar/8566/fb52/276275_large.png?m=1630288332"
      }, 
      "url": "https://www.v2ex.com/t/800144", 
      "title": "flink \u5982\u4f55\u63d0\u9ad8\u5b57\u7b26\u4e32\u89e3\u6790\u6027\u80fd", 
      "id": "https://www.v2ex.com/t/800144", 
      "date_published": "2021-09-06T05:32:30+00:00", 
      "content_html": "<p>flink \u4efb\u52a1\u89e3\u6790\u8d85\u5927 json \u6210\u4e3a\u74f6\u9888</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/zhoudaiyu", 
        "name": "zhoudaiyu", 
        "avatar": "https://cdn.v2ex.com/avatar/b75f/9ee0/163414_large.png?m=1682659533"
      }, 
      "url": "https://www.v2ex.com/t/781707", 
      "date_modified": "2021-06-06T08:21:53+00:00", 
      "content_html": "<p>\u6211\u4eec\u516c\u53f8\u7528 7 \u53f0 apache \u4f5c\u4e3a\u540e\u7aef\u53cd\u5411\u4ee3\u7406\uff0c\u6700\u8fd1\u53d1\u751f\u4e86\u5947\u602a\u7684\u4e8b\uff0c\u8fd9 7 \u4e2a apache \u7684\u67d0\u53f0\u8fd0\u884c\u4e00\u6bb5\u65f6\u95f4\u7f51\u5361\u7684\u5165\u53e3\u6d41\u91cf\u5c31\u4f1a\u7a81\u7136\u964d\u4f4e\uff0c\u8fde\u63a5\u6570\u964d\u4f4e\uff0c\u5ba2\u6237\u7aef\u76d1\u63a7\u62a5\u8b66\u6709\u8bf7\u6c42\u8d85\u65f6\uff0c\u91cd\u542f apache \u540e\u5373\u53ef\u6062\u590d\uff08\u6545\u969c\u5728 7 \u53f0\u4e0a\u90fd\u53d1\u751f\u8fc7\uff0c\u4f46\u662f\u540c\u4e00\u65f6\u523b\u53ea\u6709\u4e00\u53f0\u6302\uff09\u3002\u89c2\u5bdf\u4e86\u4e00\u4e0b\u6545\u969c\u53d1\u751f\u65f6\u5019\u7684\u60c5\u51b5\uff0c\u51fa\u95ee\u9898\u7684\u65f6 apache \u76d1\u542c\u7684\u7aef\u53e3\u5168\u8fde\u63a5\u961f\u5217\u6253\u6ee1\uff0cRecv-Q 129 Send-Q 128 \u3002</p>\n<p>\u8fd9\u51e0\u53f0 apache \u5e73\u65f6\u8fd0\u884c\u8fc7\u7a0b\u4e2d\u603b\u662f\u6709\u5b50\u8fdb\u7a0b\u4e0d\u65ad\u9000\u51fa\u5e76\u521b\u5efa\u51fa\u65b0\u7684\u5b50\u8fdb\u7a0b\uff08 10 \u79d2\u5de6\u53f3\u5c31\u4f1a\u53d1\u751f\uff09\uff0c\u5728\u5373\u5c06\u521b\u5efa\u51fa\u5b50\u8fdb\u7a0b\u7684\u65f6\u5019\uff0c\u5168\u8fde\u63a5\u961f\u5217\u4f1a\u79ef\u538b\uff08 Recv-Q \u5927\u6982\u80fd\u5230 40 \uff09\u3002\u7528 perf trace \u8ffd\u8e2a\u4e86\u4e00\u4e0b\u67d0\u4e2a\u5b50\u8fdb\u7a0b\u7684\u7cfb\u7edf\u8c03\u7528\uff0c\u53d1\u73b0\u9000\u51fa\u7801\u90fd\u662f 0\uff0c\u770b\u4e0a\u53bb\u662f\u6b63\u5e38\u9000\u51fa\u7684\uff1f</p>\n<p>\u7cfb\u7edf\u65e5\u5fd7 /var/log/message \u548c dmesg \u4ee5\u53ca apache \u65e5\u5fd7\u90fd\u6ca1\u6709\u5f02\u5e38\uff0c\u8fd9\u4e2a\u73b0\u8c61\u662f\u4eca\u5e74 4 \u6708\u53d1\u751f\u7684\uff0c\u4f46\u662f\u53d1\u751f\u6545\u969c\u524d\u540e\u6211\u4eec\u5e76\u6ca1\u6709\u53d8\u66f4\u8fc7 apache \u7684\u914d\u7f6e\uff0c\u8fdb\u7a0b\u6a21\u578b\u7528\u7684 event \u3002\u6240\u4ee5\u6709\u70b9\u7591\u60d1\uff0c\u5927\u5bb6\u6709\u5565\u601d\u8def\u5417\uff1f</p>\n", 
      "date_published": "2021-06-06T08:16:50+00:00", 
      "title": "\u6709\u6ca1\u6709\u54ea\u4f4d\u719f\u6089 apache httpd\uff0c\u6709\u4e2a\u79bb\u8c31\u7684\u4e8b\u60c5\u95ee\u4e00\u4e0b", 
      "id": "https://www.v2ex.com/t/781707"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/leeraya", 
        "name": "leeraya", 
        "avatar": "https://cdn.v2ex.com/gravatar/64c509993a406b707d67c6f6572f9d07?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/740543", 
      "title": "\u90e8\u7f72\u4e2a apache/doris \u600e\u4e48\u5c31\u8fd9\u4e48\u590d\u6742", 
      "id": "https://www.v2ex.com/t/740543", 
      "date_published": "2020-12-31T02:58:06+00:00", 
      "content_html": "<p><a href=\"https://www.bookstack.cn/read/Doris/0.md\" rel=\"nofollow\">https://www.bookstack.cn/read/Doris/0.md</a>\n\u5c31\u4e0d\u80fd\u63d0\u4f9b\u4e2a\u5355\u673a\u7248\uff0c\u4e00\u952e\u542f\u52a8\u5417\uff0c\u641e\u4e86\u4e00\u5929\u4e86\u90fd\u3002</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/howandsen", 
        "name": "howandsen", 
        "avatar": "https://cdn.v2ex.com/gravatar/467dd7c245de904077514f424afbc7df?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/722066", 
      "date_modified": "2020-11-05T07:48:24+00:00", 
      "content_html": "httpd \u91cc\u4e24\u4e2a virtualhost, A \u548c B\uff0c\u7528 A \u53cd\u5411\u4ee3\u7406 B<br /><br />\u76ee\u524d\u662f\u7528 http \u901a\u4fe1\u3002<br /><br />ProxyPass \"http://127.0.0.1:8080\"<br /><br />\u6211\u7684\u95ee\u9898\u662f\uff0chttpd \u652f\u6301\u522b\u7684\u901a\u4fe1\u65b9\u5f0f\u4e48\uff1f<br /><br />\u6bd4\u5982\u50cf uWSGI \u90a3\u6837\u652f\u6301 unix socket", 
      "date_published": "2020-11-05T07:46:38+00:00", 
      "title": "httpd \u548c\u5176\u5b83 web server \u7684\u901a\u4fe1\u65b9\u5f0f\u6709\u54ea\u4e9b\uff1f", 
      "id": "https://www.v2ex.com/t/722066"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/Vimax", 
        "name": "Vimax", 
        "avatar": "https://cdn.v2ex.com/avatar/3e19/b530/287706_large.png?m=1603177006"
      }, 
      "url": "https://www.v2ex.com/t/685677", 
      "date_modified": "2020-06-29T09:13:37+00:00", 
      "content_html": "<p>docker \u955c\u50cf\u4f7f\u7528\u7684\u662f\u4e0b\u9762\u8fd9\u4e2a\uff1a</p>\n<pre><code class=\"language-sh\">docker run -t -p 80:80 -d -v /home:/h5ai --name h5ai ilemonrain/h5ai:full\n</code></pre>\n<p>\u90e8\u7f72\u5b8c\u6bd5\u540e\uff0c\u901a\u8fc7 h5ai \u6d4f\u89c8\u76ee\u5f55\uff0c\u94fe\u63a5\uff0c\u9884\u89c8\u4e2d\u6587\u90fd\u662f\u6ca1\u6709\u95ee\u9898\u3002\u4f46\u662f\u76f4\u63a5\u901a\u8fc7\u94fe\u63a5+\u6587\u4ef6\u540d(raw)\u76f4\u63a5\u8bbf\u95ee\u65f6\uff0c\u6587\u672c\u7c7b\u578b\u6587\u4ef6(txt,md)\u7b49\u6709\u4e2d\u6587\u5185\u5bb9\u90fd\u4f1a\u663e\u793a\u4e71\u7801.</p>\n<pre><code># README\n\n\u00e8\u00bf\u2122\u00e6\u02dc\u00af\u00e4\u00b8\u20ac\u00e4\u00b8\u00aa\u00e6\u2013\u2021\u00e6\u00a1\u00a3\u00e5\u2026\u00b1\u00e4\u00ba\u00ab\u00e5\u00b9\u00b3\u00e5\u008f\u00b0\u00e3\u20ac\u201a\n</code></pre>\n<p>\u67e5\u770b\u4e86\u4e0b\u5e94\u7528\u670d\u52a1\u5668\u662f apache</p>\n<pre><code>Apache/2.4.33 (Unix) Server at xxx.xxx.xxx.xxx Port 80\n</code></pre>\n<p>\u53bb\u7f51\u4e0a\u641c\u7d22\u4e86\u591a\u4e2a\u6587\u672c\u6d4f\u89c8\u4e2d\u6587\u4e71\u7801\u7684\u65b9\u6848\uff0c\u90fd\u5931\u8d25\u4e86\u3002</p>\n<pre><code>vim /etc/httpd/conf/httpd.conf\n\n</code></pre>\n<ul>\n<li>\u65b0\u589e AddDefaultCharset off \u5b57\u6bb5\n\u6216</li>\n<li>\u65b0\u589e AddDefaultCharset utf-8 \u5b57\u6bb5\n\u6216</li>\n<li>\u65b0\u589e AddDefaultCharset ISO-8859-1 \u5b57\u6bb5</li>\n</ul>\n<p>...</p>\n<p>\u4fee\u6539\u4fdd\u5b58\u540e\uff0c\u91cd\u542f docker \u5bb9\u5668\uff0c\u6d4f\u89c8\u6587\u672c raw\uff0c\u8fd8\u662f\u4e71\u7801\u3002</p>\n", 
      "date_published": "2020-06-29T09:12:20+00:00", 
      "title": "\u4f7f\u7528 docker \u5b89\u88c5 h5ai \u540e\uff0c\u76f4\u63a5\u8bbf\u95ee\u6587\u672c\u6587\u4ef6\u4e71\u7801", 
      "id": "https://www.v2ex.com/t/685677"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/hbolive", 
        "name": "hbolive", 
        "avatar": "https://cdn.v2ex.com/gravatar/c869ce009722f7ad46999674d6392cb7?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/636304", 
      "title": "\u5173\u4e8e htaccess Redirect 301 \u95ee\u9898\uff0c\u600e\u4e48\u53bb\u6389\u53c2\u6570", 
      "id": "https://www.v2ex.com/t/636304", 
      "date_published": "2020-01-08T14:48:44+00:00", 
      "content_html": "\u540c\u4e00\u4e2a\u57df\u540d\u4e0b\uff0c\u67d0\u4e9b\u5730\u5740\u53d8\u4e86\uff1a<br />Redirect 301 /1.html /test/<br />\u7ed3\u679c\u8bbf\u95ee /1.html \u65f6\uff0c\u6700\u540e\u7684 URL \u5730\u5740\u662f\uff1a/test/?/1.html<br />\u867d\u7136\u6700\u7ec8\u9875\u9762\u6ca1\u95ee\u9898\uff0c\u4f46\u8fd9\u4e2a\u53c2\u6570\u8ddf\u5728\u540e\u9762\u5f88\u4e0d\u723d\uff0c\u8bf7\u95ee\u600e\u4e48\u53bb\u6389\uff1f<br />apache2.4/windows<br />\u4ee5\u524d\u4e5f\u5199\u8fc7\u7c7b\u4f3c\u7684\u91cd\u5b9a\u5411\uff0c\u6ca1\u6709\u8fd9\u4e2a\u95ee\u9898\u3002\u3002"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/harryperlau", 
        "name": "harryperlau", 
        "avatar": "https://cdn.v2ex.com/gravatar/f5b35e95e0228223911d4f2c9bd988de?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/633443", 
      "title": "\u53cd\u5411\u4ee3\u7406\u914d\u7f6e ip \u53ef\u4ee5\u8bbf\u95ee\uff0c\u57df\u540d\u4e0d\u884c", 
      "id": "https://www.v2ex.com/t/633443", 
      "date_published": "2019-12-30T01:36:45+00:00", 
      "content_html": "<p>\u7528 Apache \u505a\u53cd\u5411\u4ee3\u7406\u914d\u7f6e\uff0c\u914d\u7f6e\u6587\u4ef6\u5982\u4e0b\uff1a</p>\n<pre><code>    ProxyPass /webapp/  balancer://webapp-proxy/\n    ProxyPassReverse /webapp/ balancer://webapp-proxy/\n    &lt;Proxy balancer://webapp-proxy&gt;\n            BalancerMember http://10.61.16.28:8523/webapp/\n    &lt;/Proxy&gt;\n\n    ProxyPassMatch ^(/qa(/\\w+)+)  balancer://qa-proxy/\n    ProxyPassReverse ^(/qa(/\\w+)+) balancer://qa-proxy/\n    &lt;Proxy balancer://qa-proxy&gt;\n            BalancerMember http://10.61.16.27:8522/\n    &lt;/Proxy&gt;\n\n\n\n    ProxyPassMatch ^(/qa-client(/\\w+)*.*)  balancer://qa-client-proxy/\n    ProxyPassReverse ^(/qa-client(/\\w+)*.*) balancer://qa-client-proxy/\n    &lt;Proxy balancer://qa-client-proxy&gt;\n            BalancerMember http://10.61.16.28:8524/\n    &lt;/Proxy&gt;\n\n\n    ProxyPassMatch ^(/wx(/\\w+)*.*)  balancer://qa-wx-proxy/\n    ProxyPassReverse ^(/wx(/\\w+)*.*) balancer://qa-wx-proxy/\n    &lt;Proxy balancer://qa-wx-proxy&gt;\n            BalancerMember http://10.61.16.28:8525/\n    &lt;/Proxy&gt;\n</code></pre>\n<p>\u4e3a\u4ec0\u4e48 ip \u8bbf\u95ee\u65f6\u6b63\u5e38\uff0c\u7528\u57df\u540d\u8bbf\u95ee\u65f6\u5c31\u4f1a\u63d0\u793a\u91cd\u5b9a\u5411\u6b21\u6570\u8fc7\u591a\u3002\u5bf9\u4e86\uff0cApache \u914d\u7f6e\u6587\u4ef6\u91cc\u8fd8\u6709 webgate \u5355\u70b9\u767b\u5f55\u62e6\u622a\u3002</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/PingCAP", 
        "name": "PingCAP", 
        "avatar": "https://cdn.v2ex.com/avatar/daac/3644/162717_large.png?m=1536739465"
      }, 
      "url": "https://www.v2ex.com/t/632978", 
      "title": "\u300c\u5206\u5e03\u5f0f\u7cfb\u7edf\u524d\u6cbf\u6280\u672f\u300d\u4e13\u9898 | Pulsar \u7684\u8bbe\u8ba1\u54f2\u5b66", 
      "id": "https://www.v2ex.com/t/632978", 
      "date_published": "2019-12-27T11:03:51+00:00", 
      "content_html": "<blockquote>\n<p>\u5206\u5e03\u5f0f\u6280\u672f\u7684\u53d1\u5c55\uff0c\u6df1\u523b\u5730\u6539\u53d8\u4e86\u6211\u4eec\u7f16\u7a0b\u7684\u6a21\u5f0f\u548c\u601d\u8003\u8f6f\u4ef6\u7684\u6a21\u5f0f\u3002\u503c 2019 \u5c81\u672b\uff0cPingCAP \u8054\u5408 InfoQ \u5171\u540c\u7b56\u5212\u51fa\u54c1\u201c\u5206\u5e03\u5f0f\u7cfb\u7edf\u524d\u6cbf\u6280\u672f \u201d\u4e13\u9898\uff0c \u9080\u8bf7\u4f17\u591a\u6280\u672f\u56e2\u961f\u5171\u540c\u53c2\u4e0e\uff0c\u4e00\u8d77\u63a2\u7d22\u8fd9\u4e2a\u53e4\u8001\u9886\u57df\u7684\u65b0\u751f\u673a\u3002\u672c\u6587\u51fa\u81ea StreamNative \u8054\u5408\u521b\u59cb\u4eba Sijie Guo\u3002</p>\n</blockquote>\n<p>\u51e0\u5341\u5e74\u524d\uff0c\u6d88\u606f\u961f\u5217\u5f00\u59cb\u5174\u8d77\uff0c\u5b83\u7528\u4e8e\u8fde\u63a5\u5927\u578b\u673a\u548c\u670d\u52a1\u5668\u5e94\u7528\u7a0b\u5e8f\uff0c\u5e76\u9010\u6e10\u5728\u4f01\u4e1a\u7684\u670d\u52a1\u603b\u7ebf\u4e0e\u4e8b\u4ef6\u603b\u7ebf\u8bbe\u8ba1\u6a21\u5f0f\u3001\u5e94\u7528\u95f4\u7684\u8def\u7531\u548c\u6570\u636e\u8fc1\u79fb\u4e2d\u53d1\u6325\u81f3\u5173\u91cd\u8981\u7684\u4f5c\u7528\u3002\u81ea\u6b64\uff0c\u5e94\u7528\u7a0b\u5e8f\u67b6\u6784\u548c\u6570\u636e\u89d2\u8272\u7ecf\u5386\u4e86\u91cd\u5927\u53d8\u5316\uff1a\u4f8b\u5982\uff0c\u9762\u5411\u670d\u52a1\u7684\u67b6\u6784\u3001\u6d41\u5904\u7406\u3001\u5fae\u670d\u52a1\u3001\u5bb9\u5668\u5316\u3001\u4e91\u670d\u52a1\u548c\u8fb9\u7f18\u8ba1\u7b97\uff0c\u8fd9\u4e9b\u53ea\u662f\u8bf8\u591a\u53d8\u5316\u4e2d\u7684\u51b0\u5c71\u4e00\u89d2\u3002\u8fd9\u4e9b\u53d8\u5316\u521b\u9020\u4e86\u5927\u91cf\u7684\u65b0\u9700\u6c42\uff0c\u8fd9\u4e9b\u65b0\u9700\u6c42\u8fdc\u8fdc\u8d85\u51fa\u4e86\u539f\u6709\u6d88\u606f\u961f\u5217\u7684\u6280\u672f\u80fd\u529b\u3002</p>\n<p>\u4e3a\u4e86\u6ee1\u8db3\u8fd9\u4e9b\u9700\u6c42\uff0c\u5904\u7406\u6d88\u606f\u961f\u5217\u7684\u5168\u65b0\u65b9\u6cd5\u5e94\u8fd0\u800c\u751f\u3002\u73b0\u4ee3\u5e94\u7528\u5bf9\u6d88\u606f\u89e3\u51b3\u65b9\u6848\u7684\u8981\u6c42\u4e0d\u4ec5\u4ec5\u662f\u4e3b\u52a8\u8fde\u63a5\u3001\u79fb\u52a8\u6570\u636e\uff0c\u800c\u662f\u8981\u5728\u6301\u7eed\u589e\u957f\u7684\u670d\u52a1\u548c\u5e94\u7528\u4e2d\u667a\u80fd\u5904\u7406\u3001\u5206\u6790\u548c\u4f20\u8f93\u6570\u636e\uff0c\u5e76\u4e14\u5728\u89c4\u6a21\u6301\u7eed\u6269\u5927\u7684\u60c5\u51b5\u4e0b\u4e0d\u589e\u52a0\u8fd0\u8425\u8d1f\u62c5\u3002</p>\n<p>\u4e3a\u4e86\u6ee1\u8db3\u4e0a\u8ff0\u8981\u6c42\uff0c\u65b0\u4e00\u4ee3\u7684\u6d88\u606f\u4f20\u9012\u548c\u6570\u636e\u5904\u7406\u89e3\u51b3\u65b9\u6848 Apache Pulsar \u5e94\u8fd0\u800c\u751f\u3002Apache Pulsar \u8d77\u521d\u4f5c\u4e3a\u6d88\u606f\u6574\u5408\u5e73\u53f0\u5728 Yahoo \u5185\u90e8\u5f00\u53d1\u3001\u90e8\u7f72\uff0c\u4e3a Yahoo Finance\u3001Yahoo Mail \u548c Flickr \u7b49\u96c5\u864e\u5185\u90e8\u5173\u952e\u5e94\u7528\u8fde\u63a5\u6570\u636e\u30022016 \u5e74 Yahoo \u628a Pulsar \u5f00\u6e90\u5e76\u6350\u7ed9 Apache \u8f6f\u4ef6\u57fa\u91d1\u4f1a\uff08 ASF \uff09\uff0c2018 \u5e74 9 \u6708 Pulsar \u6bd5\u4e1a\u6210\u4e3a ASF \u7684\u9876\u7ea7\u9879\u76ee\uff0c\u9010\u6e10\u4ece\u5355\u4e00\u7684\u6d88\u606f\u7cfb\u7edf\u6f14\u5316\u6210\u96c6\u6d88\u606f\u3001\u5b58\u50a8\u548c\u51fd\u6570\u5f0f\u8f7b\u91cf\u5316\u8ba1\u7b97\u7684\u6d41\u6570\u636e\u5e73\u53f0\u3002</p>\n<p>Pulsar \u7684\u8bbe\u8ba1\u662f\u4e3a\u4e86\u65b9\u4fbf\u548c\u73b0\u6709\u7684 Kafka \u90e8\u7f72\u96c6\u6210\uff0c\u540c\u65f6\u4e5f\u65b9\u4fbf\u5f00\u53d1\u4eba\u5458\u5c06\u5176\u8fde\u63a5\u5230\u5e94\u7528\u7a0b\u5e8f\u3002Pulsar \u6700\u521d\u5c31\u662f\u4e3a\u8fde\u63a5 Kafka \u6784\u5efa\u7684\u3002Pulsar \u63d0\u4f9b\u548c Kafka \u517c\u5bb9\u7684 API\uff0c\u65e0\u9700\u66f4\u6539\u4ee3\u7801\uff0c\u53ea\u8981\u4f7f\u7528 Pulsar \u5ba2\u6237\u7aef\u5e93\u91cd\u65b0\u7f16\u8bd1\uff0c\u73b0\u6709\u5e94\u7528\u7a0b\u5e8f\u5373\u53ef\u8fde\u63a5\u5230 Kafka\u3002Pulsar \u8fd8\u63d0\u4f9b\u5185\u7f6e\u7684 Kafka \u8fde\u63a5\u5668\uff0c\u53ef\u4ee5\u6d88\u8d39 Kafka topic \u7684\u6570\u636e\u6216\u5c06\u6570\u636e\u53d1\u5e03\u5230 Kafka topic\u3002</p>\n<p>\u7cfb\u7edf\u67b6\u6784\u662f\u8f6f\u4ef6\u6700\u5e95\u5c42\u7684\u8bbe\u8ba1\u51b3\u7b56\uff0c\u4e00\u65e6\u5b9e\u65bd\uff0c\u5c31\u5f88\u96be\u6539\u53d8\u3002\u67b6\u6784\u51b3\u5b9a\u4e86\u8f6f\u4ef6\u7279\u6027\u548c\u6839\u672c\u4e0d\u540c\u3002Apache Pulsar \u5728\u529f\u80fd\u4e0a\u6709\u5f88\u591a\u4f18\u52bf\uff0c\u4f8b\u5982\u7edf\u4e00\u7684\u6d88\u8d39\u6a21\u578b\uff0c\u591a\u79df\u6237\uff0c\u9ad8\u53ef\u7528\u6027\u7b49\u7b49\uff0c\u4f46\u6700\u672c\u8d28\u3001\u6700\u91cd\u8981\u7684\u533a\u522b\u8fd8\u662f Apache Pulsar \u7684\u7cfb\u7edf\u67b6\u6784\u3002Apache Pulsar \u7684\u8bbe\u8ba1\u67b6\u6784\u4e0e\u5176\u4ed6\u6d88\u606f\u4f20\u9012\u89e3\u51b3\u65b9\u6848\uff08\u5305\u62ec Apache Kafka \uff09\u7684\u67b6\u6784\u6709\u7740\u672c\u8d28\u4e0d\u540c\uff0cPulsar \u4ece\u8bbe\u8ba1\u65f6\u5c31\u91c7\u7528\u4e86\u5206\u5c42\u5206\u7247\u5f0f\u7684\u67b6\u6784\uff0c\u4ee5\u63d0\u4f9b\u66f4\u597d\u7684\u6027\u80fd\u3001\u53ef\u6269\u5c55\u6027\u548c\u7075\u6d3b\u6027\u3002</p>\n<p>\u73b0\u5b9e\u751f\u6d3b\u4e2d\uff0c\u5b58\u5728\u7684\u6d88\u606f\u7cfb\u7edf\u6709\u5f88\u591a\uff0cYahoo \u4e3a\u4ec0\u4e48\u7814\u53d1\u81ea\u5df1\u7684\u6d88\u606f\u7cfb\u7edf\u5462\uff1f\u56e0\u4e3a\u5df2\u6709\u7684\u6d88\u606f\u7cfb\u7edf\u65e0\u6cd5\u89e3\u51b3 Yahoo \u9047\u5230\u7684\u95ee\u9898\u548c\u89c4\u6a21\uff0cYahoo \u9700\u8981\u591a\u79df\u6237\uff0c\u80fd\u591f\u652f\u6491\u4e0a\u767e\u4e07\u7684 topics\uff0c\u540c\u65f6\u6ee1\u8db3\u4f4e\u5ef6\u8fdf\u3001\u6301\u4e45\u5316\u548c\u8de8\u5730\u57df\u590d\u5236\u8981\u6c42\u3002\u800c\u73b0\u6709\u7684\u6d88\u606f\u7cfb\u7edf\uff0c\u5b58\u5728\u5982\u4e0b\u8bf8\u591a\u95ee\u9898\uff1a</p>\n<ul>\n<li>\n<p>\u5206\u533a\u6a21\u578b\u7d27\u8026\u5408\u5b58\u50a8\u548c\u8ba1\u7b97\uff0c\u4e0d\u662f\u4e91\u539f\u751f\uff08 Cloud Native \uff09\u7684\u8bbe\u8ba1\u3002</p>\n</li>\n<li>\n<p>\u5b58\u50a8\u6a21\u578b\u8fc7\u4e8e\u7b80\u5355\uff0c\u5bf9\u6587\u4ef6\u7cfb\u7edf\u4f9d\u8d56\u592a\u5f3a\u3002</p>\n</li>\n<li>\n<p>IO \u4e0d\u9694\u79bb\uff0c\u6d88\u8d39\u8005\u5728\u6e05\u9664 Backlog \u65f6\u4f1a\u5f71\u54cd\u5176\u4ed6\u751f\u4ea7\u8005\u548c\u6d88\u8d39\u8005\u3002</p>\n</li>\n<li>\n<p>\u8fd0\u7ef4\u590d\u6742\uff0c\u66ff\u6362\u673a\u5668\u3001\u670d\u52a1\u6269\u5bb9\u9700\u91cd\u65b0\u5747\u8861\u6570\u636e\u3002</p>\n</li>\n</ul>\n<p>\u4e8e\u662f\uff0c\u6211\u4eec\u51b3\u5b9a\u5f00\u59cb\u7814\u53d1 Pulsar \u6765\u89e3\u51b3\u6d88\u606f\u961f\u5217\u7684\u6269\u5c55\u6027\u95ee\u9898\u3002\u89e3\u51b3\u6269\u5c55\u6027\u95ee\u9898\u7684\u6838\u5fc3\u601d\u8def\u662f\u6570\u636e\u5206\u7247\uff0cPulsar \u4ece\u8bbe\u8ba1\u65f6\u5c31\u91c7\u7528\u4e86\u5206\u5c42\u5206\u7247\u5f0f\u7684\u67b6\u6784\uff0c\u4ee5\u63d0\u4f9b\u66f4\u597d\u7684\u6027\u80fd\u3001\u53ef\u6269\u5c55\u6027\u548c\u7075\u6d3b\u6027\u3002</p>\n<p>\u4e0b\u9762\u6211\u4eec\u4ece\u6280\u672f\u89d2\u5ea6\u6765\u8be6\u7ec6\u89e3\u6790 Apache Pulsar \u7684\u67b6\u6784\u3002</p>\n<h2>Pulsar \u7684\u5206\u5c42\u67b6\u6784</h2>\n<p>\u4ece\u6570\u636e\u5e93\u5230\u6d88\u606f\u7cfb\u7edf\uff0c\u5927\u591a\u6570\u5206\u5e03\u5f0f\u7cfb\u7edf\u91c7\u7528\u4e86\u6570\u636e\u5904\u7406\u548c\u6570\u636e\u5b58\u50a8\u5171\u5b58\u4e8e\u540c\u4e00\u8282\u70b9\u7684\u65b9\u6cd5\u3002\u8fd9\u79cd\u8bbe\u8ba1\u51cf\u5c11\u4e86\u7f51\u7edc\u4e0a\u7684\u6570\u636e\u4f20\u8f93\uff0c\u53ef\u4ee5\u63d0\u4f9b\u66f4\u7b80\u5355\u7684\u57fa\u7840\u67b6\u6784\u548c\u6027\u80fd\u4f18\u52bf\uff0c\u4f46\u5176\u5728\u7cfb\u7edf\u53ef\u6269\u5c55\u6027\u548c\u9ad8\u53ef\u7528\u6027\u4e0a\u4f1a\u5927\u6253\u6298\u6263\u3002</p>\n<p>Pulsar \u67b6\u6784\u4e2d\u6570\u636e\u670d\u52a1\u548c\u6570\u636e\u5b58\u50a8\u662f\u5355\u72ec\u7684\u4e24\u5c42\uff1a\u6570\u636e\u670d\u52a1\u5c42\u7531\u65e0\u72b6\u6001\u7684 \u201cBroker\u201d \u8282\u70b9\u7ec4\u6210\uff0c\u800c\u6570\u636e\u5b58\u50a8\u5c42\u5219\u7531 \u201cBookie\u201d \u8282\u70b9\u7ec4\u6210\u3002</p>\n<p><img alt=\"\" src=\"https://imgconvert.csdnimg.cn/aHR0cHM6Ly91cGxvYWQtaW1hZ2VzLmppYW5zaHUuaW8vdXBsb2FkX2ltYWdlcy81NDI2NzctZTZjYTg4NDg2NDhkNmYxOA?x-oss-process=image/format,png\"/></p>\n&lt;center&gt;\u56fe 1 \u4f20\u7edf\u5355\u4f53\u67b6\u6784 vs. Pulsar \u5b58\u50a8\u8ba1\u7b97\u5206\u5c42\u67b6\u6784&lt;/center&gt;\n<p>\u8fd9\u79cd\u5b58\u50a8\u548c\u8ba1\u7b97\u5206\u79bb\u7684\u67b6\u6784\u7ed9 Pulsar \u5e26\u6765\u4e86\u5f88\u591a\u4f18\u52bf\u3002\u9996\u5148\uff0c\u5728 Pulsar \u8fd9\u79cd\u5206\u5c42\u67b6\u6784\u4e2d\uff0c\u670d\u52a1\u5c42\u548c\u5b58\u50a8\u5c42\u90fd\u80fd\u591f\u72ec\u7acb\u6269\u5c55\uff0c\u53ef\u4ee5\u63d0\u4f9b\u7075\u6d3b\u7684\u5f39\u6027\u6269\u5bb9\u3002\u7279\u522b\u662f\u5728\u5f39\u6027\u73af\u5883\uff08\u4f8b\u5982\u4e91\u548c\u5bb9\u5668\uff09\u4e2d\u80fd\u591f\u81ea\u52a8\u6269\u5bb9\u7f29\u5bb9\uff0c\u5e76\u52a8\u6001\u9002\u5e94\u6d41\u91cf\u7684\u5cf0\u503c\u3002\u5e76\u4e14\uff0cPulsar \u8fd9\u79cd\u5206\u5c42\u67b6\u6784\u663e\u8457\u964d\u4f4e\u4e86\u96c6\u7fa4\u6269\u5c55\u548c\u5347\u7ea7\u7684\u590d\u6742\u6027\uff0c\u63d0\u9ad8\u4e86\u7cfb\u7edf\u53ef\u7528\u6027\u548c\u53ef\u7ba1\u7406\u6027\u3002\u6b64\u5916\uff0c\u8fd9\u79cd\u8bbe\u8ba1\u5bf9\u5bb9\u5668\u662f\u975e\u5e38\u53cb\u597d\u7684\uff0c\u8fd9\u4f7f \u5f97 Pulsar \u4e5f\u6210\u4e3a\u4e86\u6d41\u539f\u751f\u5e73\u53f0\u7684\u7406\u60f3\u9009\u62e9\u3002</p>\n<p>Pulsar \u7cfb\u7edf\u67b6\u6784\u7684\u4f18\u52bf\u4e5f\u5305\u62ec Pulsar \u5206\u7247\u5b58\u50a8\u6570\u636e\u7684\u65b9\u5f0f\u3002Pulsar \u5c06\u4e3b\u9898\u5206\u533a\u6309\u7167\u66f4\u5c0f\u7684\u5206\u7247\u7c92\u5ea6\u6765\u5b58\u50a8\uff0c\u7136\u540e\u5c06\u8fd9\u4e9b\u5206\u7247\u5747\u5300\u6253\u6563\u5206\u5e03\u5728\u5b58\u50a8\u5c42\u7684 \u201cbookie\u201d \u8282\u70b9\u4e0a\u3002\u8fd9\u79cd\u4ee5\u5206\u7247\u4e3a\u4e2d\u5fc3\u7684\u6570\u636e\u5b58\u50a8\u65b9\u5f0f\uff0c\u5c06\u4e3b\u9898\u5206\u533a\u4f5c\u4e3a\u4e00\u4e2a\u903b\u8f91\u6982\u5ff5\uff0c\u5206\u4e3a\u591a\u4e2a\u8f83\u5c0f\u7684\u5206\u7247\uff0c\u5e76\u5747\u5300\u5206\u5e03\u548c\u5b58\u50a8\u5728\u5b58\u50a8\u5c42\u4e2d\u3002\u8fd9\u79cd\u67b6\u6784\u8bbe\u8ba1\u4e3a Pulsar \u5e26\u6765\u4e86\u66f4\u597d\u7684\u6027\u80fd\uff0c\u66f4\u7075\u6d3b\u7684\u6269\u5c55\u6027\u548c\u66f4\u9ad8\u7684\u53ef\u7528\u6027\u3002</p>\n<p>Pulsar \u67b6\u6784\u4e2d\u7684\u6bcf\u5c42\u90fd\u53ef\u4ee5\u5355\u72ec\u8bbe\u7f6e\u5927\u5c0f\uff0c\u8fdb\u884c\u6269\u5c55\u548c\u914d\u7f6e\u3002\u6839\u636e\u5176\u5728\u4e0d\u540c\u670d\u52a1\u4e2d\u7684\u4f5c\u7528\u4e0d\u540c\uff0c\u53ef\u7075\u6d3b\u914d\u7f6e\u96c6\u7fa4\u3002\u5bf9\u4e8e\u9700\u8981\u957f\u65f6\u95f4\u4fdd\u7559\u7684\u7528\u6237\u6570\u636e\uff0c\u65e0\u9700\u91cd\u65b0\u914d\u7f6e broker\uff0c\u53ea\u8981\u8c03\u6574\u5b58\u50a8\u5c42\u7684\u5927\u5c0f\u3002\u5982\u679c\u8981\u589e\u52a0\u5904\u7406\u8d44\u6e90\uff0c\u4e0d\u7528\u91cd\u65b0\u5f3a\u5236\u914d\u7f6e\u5b58\u50a8\u5c42\uff0c\u53ea\u9700\u6269\u5c55\u5904\u7406\u5c42\u3002\u6b64\u5916\uff0c\u53ef\u6839\u636e\u6bcf\u5c42\u7684\u9700\u6c42\u4f18\u5316\u786c\u4ef6\u6216\u5bb9\u5668\u914d\u7f6e\u9009\u62e9\uff0c\u6839\u636e\u5b58\u50a8\u4f18\u5316\u5b58\u50a8\u8282\u70b9\uff0c\u6839\u636e\u5185\u5b58\u4f18\u5316\u670d\u52a1\u8282\u70b9\uff0c\u6839\u636e\u8ba1\u7b97\u8d44\u6e90\u4f18\u5316\u5904\u7406\u8282\u70b9\u3002</p>\n<p><img alt=\"\" src=\"https://imgconvert.csdnimg.cn/aHR0cHM6Ly91cGxvYWQtaW1hZ2VzLmppYW5zaHUuaW8vdXBsb2FkX2ltYWdlcy81NDI2NzctNTQ2MTg0Yjg1OGY5ZDNkNg?x-oss-process=image/format,png\"/></p>\n&lt;center&gt;\u56fe 2 Apache Pulsar \u7cfb\u7edf\u67b6\u6784&lt;/center&gt;\n<p>\u800c\u5927\u591a\u6570\u6d88\u606f\u961f\u5217\u6280\u672f\uff08\u5305\u62ec Apache Kafka \uff09\u90fd\u91c7\u7528\u5355\u4f53\u67b6\u6784\uff0c\u5176\u6d88\u606f\u5904\u7406\u548c\u6d88\u606f\u6301\u4e45\u5316\uff08\u5982\u679c\u63d0\u4f9b\u4e86\u7684\u8bdd\uff09\u90fd\u5728\u96c6\u7fa4\u5185\u7684\u540c\u4e00\u4e2a\u8282\u70b9\u4e0a\u3002\u8fd9\u79cd\u4f53\u7cfb\u7ed3\u6784\u5728\u5927\u591a\u6570\u4f20\u7edf\u7684\u6570\u636e\u5e93\u5e73\u53f0\u4ee5\u53ca Hadoop \u7b49\u5927\u6570\u636e\u7cfb\u7edf\u4e2d\u4e5f\u8f83\u4e3a\u5e38\u89c1\uff0c\u4e0e\u6602\u8d35\u7684\u5916\u90e8\u5b58\u50a8\u9635\u5217\u7684\u5e38\u89c1\u66ff\u4ee3\u65b9\u6848\u76f8\u6bd4\uff0c\u5176\u8bbe\u8ba1\u76ee\u7684\u5728\u4e8e\u5c06\u6570\u636e\u7684\u8ba1\u7b97\u4e0e\u5b58\u50a8\u653e\u5230\u540c\u4e00\u53f0\u673a\u5668\u4e0a\u6765\u5904\u7406\uff0c\u4ee5\u51cf\u5c11\u7f51\u7edc\u6d41\u91cf\u548c\u8bbf\u95ee\u5ef6\u8fdf\uff0c\u540c\u65f6\u964d\u4f4e\u5b58\u50a8\u6210\u672c\u3002\u8fd9\u79cd\u65b9\u6cd5\u5728\u5c0f\u578b\u73af\u5883\u4e2d\u5f88\u5bb9\u6613\u90e8\u7f72\uff0c\u4f46\u5728\u6027\u80fd\u3001\u53ef\u4f38\u7f29\u6027\u548c\u7075\u6d3b\u6027\u65b9\u9762\u5b58\u5728\u660e\u663e\u95ee\u9898\u3002\u968f\u7740\u56fa\u6001\u78c1\u76d8\u7684\u5e7f\u6cdb\u4f7f\u7528\uff0c\u7f51\u7edc\u5e26\u5bbd\u7684\u8fc5\u901f\u63d0\u5347\u4ee5\u53ca\u5b58\u50a8\u5ef6\u8fdf\u7684\u663e\u8457\u964d\u4f4e\uff0c\u5df2\u7ecf\u6ca1\u6709\u5fc5\u8981\u91c7\u7528\u5355\u4f53\u67b6\u6784\u8fdb\u884c\u8fd9\u79cd\u6743\u8861\u5904\u7406\u4e86\u3002</p>\n<p>\u63a5\u4e0b\u6765\uff0c\u6211\u4eec\u7ed3\u5408\u6570\u636e\u5904\u7406\u4e2d\u5404\u79cd\u4e0d\u540c\u7684 IO \u8bbf\u95ee\u6a21\u5f0f\u6765\u6df1\u5165\u4e86\u89e3 Pulsar \u7cfb\u7edf\u67b6\u6784\u7684\u4f18\u52bf\u3002</p>\n<h2>IO \u8bbf\u95ee\u6a21\u5f0f\u7684\u4f18\u52bf</h2>\n<p>\u6d41\u7cfb\u7edf\u4e2d\u901a\u5e38\u6709\u4e09\u79cd IO \u8bbf\u95ee\u6a21\u5f0f\uff1a</p>\n<ol>\n<li>\n<p><strong>\u5199\uff08 Writes \uff09</strong>\uff1a\u5c06\u65b0\u6570\u636e\u5199\u5165\u7cfb\u7edf\u4e2d\uff1b</p>\n</li>\n<li>\n<p><strong>\u8ffd\u5c3e\u8bfb\uff08 Tailing Reads \uff09</strong>\uff1a\u8bfb\u53d6\u6700\u8fd1\u5199\u5165\u7684\u6570\u636e\uff1b</p>\n</li>\n<li>\n<p><strong>\u8ffd\u8d76\u8bfb\uff08 Catch-up Reads \uff09</strong>\uff1a\u8bfb\u53d6\u5386\u53f2\u7684\u6570\u636e\u3002\u4f8b\u5982\u5f53\u4e00\u4e2a\u65b0\u6d88\u8d39\u8005\u60f3\u8981\u4ece\u8f83\u65e9\u7684\u65f6\u95f4\u70b9\u5f00\u59cb\u8bbf\u95ee\u6570\u636e\uff0c\u6216\u8005\u5f53\u65e7\u6d88\u8d39\u8005\u957f\u65f6\u95f4\u79bb\u7ebf\u540e\u53c8\u6062\u590d\u65f6\u3002</p>\n</li>\n</ol>\n<p>\u548c\u5927\u591a\u6570\u5176\u4ed6\u6d88\u606f\u7cfb\u7edf\u4e0d\u540c\uff0cPulsar \u4e2d\u8fd9\u4e9b IO \u8bbf\u95ee\u6a21\u5f0f\u4e2d\u7684\u6bcf\u4e00\u79cd\u90fd\u4e0e\u5176\u4ed6\u6a21\u5f0f\u9694\u79bb\u3002\u5728\u540c\u6837 IO \u8bbf\u95ee\u6a21\u5f0f\u4e0b\uff0c\u6211\u4eec\u6765\u5bf9\u6bd4\u4e0b Pulsar \u548c\u5176\u4ed6\u4f20\u7edf\u6d88\u606f\u7cfb\u7edf\uff08\u5b58\u50a8\u548c\u670d\u52a1\u7ed1\u5b9a\u5728\u5355\u4e2a\u8282\u70b9\u4e0a\uff0c\u5982 Apache Kafka \uff09\u7684\u4e0d\u540c\u3002</p>\n<p>\u4f20\u7edf\u6d88\u606f\u7cfb\u7edf\uff08\u56fe 3 \u5de6\u4fa7\u56fe\uff09\u4e2d\uff0c\u6bcf\u4e2a Broker \u53ea\u80fd\u5229\u7528\u672c\u5730\u78c1\u76d8\u63d0\u4f9b\u7684\u5b58\u50a8\u5bb9\u91cf\uff0c\u8fd9\u4f1a\u7ed9\u7cfb\u7edf\u5e26\u6765\u4e00\u4e9b\u9650\u5236\uff1a</p>\n<ol>\n<li>\n<p>Broker \u53ef\u4ee5\u5b58\u50a8\u548c\u670d\u52a1\u7684\u6570\u636e\u91cf\u53d7\u9650\u4e8e\u5355\u4e2a\u8282\u70b9\u7684\u5b58\u50a8\u5bb9\u91cf\u3002\u56e0\u6b64\uff0c\u4e00\u65e6 Broker \u8282\u70b9\u7684\u5b58\u50a8\u5bb9\u91cf\u8017\u5c3d\uff0c\u5b83\u5c31\u4e0d\u80fd\u518d\u63d0\u4f9b\u5199\u8bf7\u6c42\uff0c\u9664\u975e\u5728\u5199\u5165\u524d\u5148\u6e05\u9664\u73b0\u6709\u7684\u90e8\u5206\u6570\u636e\u3002</p>\n</li>\n<li>\n<p>\u5bf9\u4e8e\u5355\u4e2a\u5206\u533a\uff0c\u5982\u679c\u9700\u8981\u5728\u591a\u4e2a\u8282\u70b9\u4e2d\u5b58\u50a8\u591a\u4e2a\u5907\u4efd\uff0c\u5bb9\u91cf\u6700\u5c0f\u7684\u8282\u70b9\u5c06\u51b3\u5b9a\u5206\u533a\u7684\u6700\u7ec8\u5927\u5c0f\u3002</p>\n</li>\n</ol>\n<p><img alt=\"\" src=\"https://imgconvert.csdnimg.cn/aHR0cHM6Ly91cGxvYWQtaW1hZ2VzLmppYW5zaHUuaW8vdXBsb2FkX2ltYWdlcy81NDI2NzctZjk3YzJmZGU3OTNjMTYwZQ?x-oss-process=image/format,png\"/></p>\n&lt;center&gt;\u56fe 3 \u4f20\u7edf\u5355\u4f53\u67b6\u6784 vs. Pulsar \u5b58\u50a8\u8ba1\u7b97\u5206\u5c42\u67b6\u6784&lt;/center&gt;\n<p>\u76f8\u6bd4\u4e4b\u4e0b\uff0c\u5728 Apache Pulsar \uff08\u56fe 3 \u53f3\u4fa7\u56fe\uff09\u4e2d\uff0c\u6570\u636e\u670d\u52a1\u548c\u6570\u636e\u5b58\u50a8\u662f\u5206\u79bb\u7684\uff0cPulsar \u670d\u52a1\u5c42\u7684\u4efb\u610f Broker \u90fd\u53ef\u4ee5\u8bbf\u95ee\u5b58\u50a8\u5c42\u7684\u6240\u6709\u5b58\u50a8\u8282\u70b9\uff0c\u5e76\u5229\u7528\u6240\u6709\u8282\u70b9\u7684\u6574\u4f53\u5b58\u50a8\u5bb9\u91cf\u3002\u5728\u670d\u52a1\u5c42\uff0c\u4ece\u7cfb\u7edf\u53ef\u7528\u6027\u7684\u89d2\u5ea6\u6765\u770b\uff0c\u8fd9\u4e5f\u6709\u7740\u6df1\u8fdc\u7684\u5f71\u54cd\uff0c\u53ea\u8981\u4efb\u4e00\u4e2a Pulsar \u7684 Broker \u8fd8\u5728\u8fd0\u884c\uff0c\u7528\u6237\u5c31\u53ef\u4ee5\u901a\u8fc7\u8fd9\u4e2a Broker \u8bfb\u53d6\u5148\u524d\u5b58\u50a8\u5728\u96c6\u7fa4\u4e2d\u7684\u4efb\u4f55\u6570\u636e\uff0c\u5e76\u4e14\u8fd8\u80fd\u591f\u7ee7\u7eed\u5199\u5165\u6570\u636e\u3002</p>\n<p>\u4e0b\u9762\u6211\u4eec\u6765\u8be6\u7ec6\u770b\u4e00\u4e0b\u5728\u6bcf\u79cd IO \u8bbf\u95ee\u6a21\u5f0f\u4e0b\u7684\u67b6\u6784\u4f18\u52bf\u3002</p>\n<h3>\u5199</h3>\n<p>\u5728\u4f20\u7edf\u6d88\u606f\u7cfb\u7edf\u67b6\u6784\u4e2d\uff0c\u4e00\u4e2a\u5206\u533a\u7684\u6240\u6709\u6743\u4f1a\u5206\u914d\u7ed9 Leader Broker\u3002\u5bf9\u4e8e\u5199\u8bf7\u6c42\uff0c\u8be5  Leader Broker \u63a5\u53d7\u5199\u5165\u5e76\u5c06\u6570\u636e\u590d\u5236\u5230\u5176\u4ed6 Broker\u3002\u5982\u56fe 4 \u5de6\u4fa7\u6240\u793a\uff0c\u6570\u636e\u9996\u5148\u5199\u5165 Leader Broker \u5e76\u590d\u5236\u7ed9\u5176\u4ed6 followers\u3002\u6570\u636e\u7684\u4e00\u6b21\u6301\u4e45\u5316\u5199\u5165\u7684\u8fc7\u7a0b\u9700\u8981\u4e24\u6b21\u7f51\u7edc\u5f80\u8fd4\u3002</p>\n<p>\u5728 Pulsar \u7cfb\u7edf\u67b6\u6784\u4e2d\uff0c\u6570\u636e\u670d\u52a1\u7531\u65e0\u72b6\u6001 Broker \u5b8c\u6210\uff0c\u800c\u6570\u636e\u5b58\u50a8\u5728\u6301\u4e45\u5b58\u50a8\u4e2d\u3002\u6570\u636e\u4f1a\u53d1\u9001\u7ed9\u670d\u52a1\u8be5\u5206\u533a\u7684 Broker\uff0c\u8be5 Broker \u5e76\u884c\u5199\u5165\u6570\u636e\u5230\u5b58\u50a8\u5c42\u7684\u591a\u4e2a\u8282\u70b9\u4e2d\u3002\u4e00\u65e6\u5b58\u50a8\u5c42\u6210\u529f\u5199\u5165\u6570\u636e\u5e76\u786e\u8ba4\u5199\u5165\uff0cBroker \u4f1a\u5c06\u6570\u636e\u7f13\u5b58\u5728\u672c\u5730\u5185\u5b58\u4e2d\u4ee5\u63d0\u4f9b\u8ffd\u5c3e\u8bfb\uff08 Tailing Reads \uff09\u3002</p>\n<p><img alt=\"\" src=\"https://imgconvert.csdnimg.cn/aHR0cHM6Ly91cGxvYWQtaW1hZ2VzLmppYW5zaHUuaW8vdXBsb2FkX2ltYWdlcy81NDI2NzctN2EwYmY4MGFhMGYyMDAxZg?x-oss-process=image/format,png\"/></p>\n&lt;center&gt;\u56fe 4 Writes \u8bbf\u95ee\u6a21\u5f0f\u5bf9\u6bd4&lt;/center&gt;\n<p>\u5982\u56fe 4 \u6240\u793a\uff0c\u548c\u4f20\u7edf\u7684\u7cfb\u7edf\u67b6\u6784\u76f8\u6bd4\uff0cPulsar \u7684\u7cfb\u7edf\u67b6\u6784\u5e76\u4e0d\u4f1a\u5728\u5199\u5165\u7684 IO \u8def\u5f84\u4e0a\u5f15\u5165\u989d\u5916\u7684\u7f51\u7edc\u5f80\u8fd4\u6216\u5e26\u5bbd\u5f00\u9500\u3002\u800c\u5b58\u50a8\u548c\u670d\u52a1\u7684\u5206\u79bb\u5219\u4f1a\u663e\u8457\u63d0\u9ad8\u7cfb\u7edf\u7684\u7075\u6d3b\u6027\u548c\u53ef\u7528\u6027\u3002</p>\n<h3>\u8ffd\u5c3e\u8bfb</h3>\n<p>\u5bf9\u4e8e\u8bfb\u53d6\u6700\u8fd1\u5199\u5165\u7684\u6570\u636e\u573a\u666f\uff0c\u5728\u4f20\u7edf\u6d88\u606f\u7cfb\u7edf\u67b6\u6784\u4e2d\uff0c\u6d88\u8d39\u8005\u4ece Leader Broker \u7684\u672c\u5730\u5b58\u50a8\u4e2d\u8bfb\u53d6\u6570\u636e\uff1b\u5728 Pulsar \u7684\u5206\u5c42\u67b6\u4e2d\uff0c\u6d88\u8d39\u8005\u4ece Broker \u5c31\u53ef\u4ee5\u8bfb\u53d6\u6570\u636e\uff0c\u7531\u4e8e Broker \u5df2\u7ecf\u5c06\u6570\u636e\u7f13\u5b58\u5728\u5185\u5b58\u4e2d\uff0c\u5e76\u4e0d\u9700\u8981\u53bb\u8bbf\u95ee\u5b58\u50a8\u5c42\u3002</p>\n<p><img alt=\"\" src=\"https://imgconvert.csdnimg.cn/aHR0cHM6Ly91cGxvYWQtaW1hZ2VzLmppYW5zaHUuaW8vdXBsb2FkX2ltYWdlcy81NDI2NzctYmRmODFhNDYzMzhhODEyNw?x-oss-process=image/format,png\"/></p>\n&lt;center&gt;\u56fe 5 Tailing Read \u8bbf\u95ee\u6a21\u5f0f\u5bf9\u6bd4&lt;/center&gt;\n<p>\u8fd9\u4e24\u79cd\u67b6\u6784\u53ea\u9700\u8981\u4e00\u6b21\u7f51\u7edc\u5f80\u8fd4\u5c31\u53ef\u4ee5\u8bfb\u53d6\u5230\u6570\u636e\u3002\u7531\u4e8e Pulsar \u5728\u7cfb\u7edf\u4e2d\u81ea\u5df1\u7ba1\u7406\u7f13\u5b58\u4e2d\u7684\u6570\u636e\uff0c\u6ca1\u6709\u4f9d\u8d56\u6587\u4ef6\u7cfb\u7edf\u7f13\u5b58\uff0c\u8fd9\u6837 Tailing Reads \u5f88\u5bb9\u6613\u5728\u7f13\u5b58\u4e2d\u547d\u4e2d\uff0c\u800c\u65e0\u9700\u4ece\u78c1\u76d8\u8bfb\u53d6\u3002\u4f20\u7edf\u7684\u7cfb\u7edf\u67b6\u6784\u4e00\u822c\u4f9d\u8d56\u4e8e\u6587\u4ef6\u7cfb\u7edf\u7684\u7f13\u5b58\uff0c\u8bfb\u5199\u64cd\u4f5c\u4e0d\u4ec5\u4f1a\u76f8\u4e92\u7ade\u4e89\u8d44\u6e90\uff08\u5305\u62ec\u5185\u5b58\uff09\uff0c\u8fd8\u4f1a\u4e0e\u4ee3\u7406\u4e0a\u53d1\u751f\u7684\u5176\u4ed6\u5904\u7406\u4efb\u52a1\u7ade\u4e89\u3002\u56e0\u6b64\uff0c\u5728\u4f20\u7edf\u7684\u5355\u7247\u67b6\u6784\u4e2d\u5b9e\u73b0\u7f13\u5b58\u5e76\u6269\u5c55\u975e\u5e38\u56f0\u96be\u3002<strong>\u8ffd\u8d76\u8bfb</strong></p>\n<p>\u8ffd\u8d76\u8bfb\uff08<strong>Catch-up Reads</strong>\uff09\u975e\u5e38\u6709\u8da3\u3002\u4f20\u7edf\u7684\u7cfb\u7edf\u67b6\u6784\u5bf9 Tailing reads \u548c Catch-up reads \u4e24\u79cd\u8bbf\u95ee\u6a21\u5f0f\u8fdb\u884c\u4e86\u540c\u6837\u7684\u5904\u7406\u3002\u5373\u4f7f\u4e00\u4efd\u6570\u636e\u5b58\u5728\u591a\u4e2a Broker \u4e2d\uff0c\u6240\u6709\u7684 Catch-up reads \u4ecd\u7136\u53ea\u80fd\u53d1\u9001\u7ed9 Leader Broker\u3002</p>\n<p>Pulsar \u7684\u5206\u5c42\u67b6\u6784\u4e2d\u5386\u53f2\uff08\u65e7\uff09\u6570\u636e\u5b58\u50a8\u5728\u5b58\u50a8\u5c42\u4e2d\u3002Catch-up \u8bfb\u53ef\u4ee5\u901a\u8fc7\u5b58\u50a8\u5c42\u5e76\u884c\u8bfb\u53d6\u6570\u636e\uff0c\u800c\u4e0d\u4f1a\u4e0e Write  \u548c Tailing Reads \u4e24\u79cd IO \u6a21\u5f0f\u7ade\u4e89\u6216\u5e72\u6270\u3002</p>\n<h3>\u4e09\u79cd IO \u6a21\u5f0f\u653e\u5728\u4e00\u8d77\u770b</h3>\n<p>\u6700\u6709\u8da3\u7684\u662f\u5f53\u4f60\u628a\u8fd9\u4e9b\u4e0d\u540c\u7684\u6a21\u5f0f\u653e\u5728\u4e00\u8d77\u65f6\uff0c\u4e5f\u5c31\u662f\u5b9e\u9645\u53d1\u751f\u7684\u60c5\u51b5\u3002\u8fd9\u4e5f\u6b63\u662f\u5355\u4f53\u67b6\u6784\u7684\u5c40\u9650\u6027\u6700\u4ee4\u4eba\u75db\u82e6\u7684\u5730\u65b9\u3002\u4f20\u7edf\u7684\u6d88\u606f\u7cfb\u7edf\u67b6\u6784\u4e2d\uff0c\u6240\u6709\u4e0d\u540c\u7684\u5de5\u4f5c\u8d1f\u8f7d\u90fd\u88ab\u53d1\u9001\u5230\u4e00\u4e2a\u4e2d\u5fc3\uff08 Leader Broker \uff09\u4f4d\u7f6e\uff0c\u51e0\u4e4e\u4e0d\u53ef\u80fd\u5728\u5de5\u4f5c\u8d1f\u8f7d\u4e4b\u95f4\u63d0\u4f9b\u4efb\u4f55\u9694\u79bb\u3002</p>\n<p>\u7136\u800c\uff0cPulsar \u7684\u5206\u5c42\u67b6\u6784\u53ef\u4ee5\u5f88\u5bb9\u6613\u5730\u9694\u79bb\u8fd9\u4e9b IO \u6a21\u5f0f\uff1a\u670d\u52a1\u5c42\u7684\u5185\u5b58\u7f13\u5b58\u4e3a Tailing Reads \u8fd9\u79cd\u6d88\u8d39\u8005\u63d0\u4f9b\u6700\u65b0\u7684\u6570\u636e\uff1b\u800c\u5b58\u50a8\u5c42\u5219\u4e3a\u5386\u53f2\u5904\u7406\u548c\u6570\u636e\u5206\u6790\u578b\u7684\u6d88\u8d39\u8005\u63d0\u4f9b\u6570\u636e\u8bfb\u53d6\u670d\u52a1\u3002</p>\n<p><img alt=\"\" src=\"https://imgconvert.csdnimg.cn/aHR0cHM6Ly91cGxvYWQtaW1hZ2VzLmppYW5zaHUuaW8vdXBsb2FkX2ltYWdlcy81NDI2NzctNDkwODhiNDI0ZWNjMGY0Yw?x-oss-process=image/format,png\"/></p>\n&lt;center&gt;\u56fe 6 \u4e09\u79cd IO \u6a21\u5f0f\u5bf9\u6bd4&lt;/center&gt;\n<p>\u8fd9\u79cd IO \u9694\u79bb\u662f Pulsar \u548c\u4f20\u7edf\u6d88\u606f\u7cfb\u7edf\u7684\u6839\u672c\u5dee\u5f02\u4e4b\u4e00\uff0c\u4e5f\u662f Pulsar \u53ef\u7528\u4e8e\u66ff\u6362\u591a\u4e2a\u5b64\u7acb\u7cfb\u7edf\u7684\u5173\u952e\u539f\u56e0\u4e4b\u4e00\u3002Apache Pulsar \u7684\u5b58\u50a8\u67b6\u6784\u8bfb\u3001\u5199\u5206\u79bb\uff0c\u80fd\u4fdd\u8bc1\u6027\u80fd\u7684\u4e00\u81f4\u6027\uff0c\u4e0d\u4f1a\u5f15\u8d77\u6570\u636e\u53d1\u5e03\u548c\u6570\u636e\u6d88\u8d39\u95f4\u7684\u8d44\u6e90\u7ade\u4e89\u3002\u5df2\u53d1\u5e03\u6570\u636e\u7684\u5199\u5165\u4f20\u9012\u5230\u5b58\u50a8\u5c42\u8fdb\u884c\u5904\u7406\uff0c\u800c\u5f53\u524d\u6570\u636e\u76f4\u63a5\u4ece broker \u5185\u5b58\u7f13\u5b58\u4e2d\u8bfb\u53d6\uff0c\u65e7\u6570\u636e\u76f4\u63a5\u4ece\u5b58\u50a8\u5c42\u8bfb\u53d6\u3002</p>\n<h2>\u8d85\u8d8a\u4f20\u7edf\u6d88\u606f\u7cfb\u7edf</h2>\n<p>\u4e0a\u9762\u8ba8\u8bba\u4e86 Pulsar \u7684\u5206\u5c42\u67b6\u6784\u5982\u4f55\u4e3a\u4e0d\u540c\u7c7b\u578b\u7684\u5de5\u4f5c\u8d1f\u8f7d\u63d0\u4f9b\u9ad8\u6027\u80fd\u548c\u53ef\u6269\u5c55\u6027\u3002Pulsar \u5206\u5c42\u67b6\u6784\u5e26\u6765\u7684\u597d\u5904\u8fdc\u8fdc\u4e0d\u6b62\u8fd9\u4e9b\u3002\u6211\u4e3e\u51e0\u4e2a\u4f8b\u5b50\u3002</p>\n<h3>\u65e0\u9650\u7684\u6d41\u5b58\u50a8</h3>\n<p>\u5e76\u884c\u8bbf\u95ee\u6d41\u5f0f\u8ba1\u7b97\u4e2d\u7684\u6700\u65b0\u6570\u636e\u548c\u6279\u91cf\u8ba1\u7b97\u4e2d\u7684\u5386\u53f2\u6570\u636e\uff0c\u662f\u4e1a\u754c\u4e00\u4e2a\u666e\u904d\u7684\u9700\u6c42\u3002</p>\n<p>\u7531\u4e8e Pulsar \u57fa\u4e8e\u5206\u7247\u7684\u67b6\u6784\uff0cPulsar \u7684\u4e00\u4e2a\u4e3b\u9898\u5728\u7406\u8bba\u4e0a\u53ef\u4ee5\u8fbe\u5230\u65e0\u9650\u5927\u5c0f\u3002\u5f53\u5bb9\u91cf\u4e0d\u8db3\u65f6\uff0c\u7528\u6237\u53ea\u9700\u8981\u6dfb\u52a0\u5bb9\u5668\u6216\u5b58\u50a8\u8282\u70b9\u5373\u53ef\u8f7b\u677e\u6269\u5c55\u5b58\u50a8\u5c42\uff0c\u800c\u65e0\u9700\u91cd\u65b0\u5e73\u8861\u6570\u636e\uff1b\u65b0\u6dfb\u52a0\u7684\u5b58\u50a8\u8282\u70b9\u4f1a\u88ab\u7acb\u5373\u7528\u4e8e\u65b0\u7684\u5206\u7247\u6216\u8005\u5206\u7247\u526f\u672c\u7684\u5b58\u50a8\u3002</p>\n<p>Pulsar \u5c06\u65e0\u754c\u7684\u6570\u636e\u770b\u4f5c\u662f\u5206\u7247\u7684\u6d41\uff0c\u5206\u7247\u5206\u6563\u5b58\u50a8\u5728\u5206\u5c42\u5b58\u50a8\uff08 tiered storage \uff09\u3001BookKeeper \u96c6\u7fa4\u548c Broker \u8282\u70b9\u4e0a\uff0c\u800c\u5bf9\u5916\u63d0\u4f9b\u4e00\u4e2a\u7edf\u4e00\u7684\u3001\u65e0\u754c\u6570\u636e\u7684\u89c6\u56fe\u3002\u5176\u6b21\uff0c\u4e0d\u9700\u8981\u7528\u6237\u663e\u5f0f\u8fc1\u79fb\u6570\u636e\uff0c\u51cf\u5c11\u5b58\u50a8\u6210\u672c\u5e76\u4fdd\u6301\u8fd1\u4f3c\u65e0\u9650\u7684\u5b58\u50a8\u3002\u56e0\u6b64\uff0cPulsar \u4e0d\u4ec5\u53ef\u4ee5\u5b58\u50a8\u5f53\u524d\u6570\u636e\uff0c\u8fd8\u53ef\u4ee5\u5b58\u50a8\u5b8c\u6574\u7684\u5386\u53f2\u6570\u636e\u3002</p>\n<p><img alt=\"\" src=\"https://imgconvert.csdnimg.cn/aHR0cHM6Ly91cGxvYWQtaW1hZ2VzLmppYW5zaHUuaW8vdXBsb2FkX2ltYWdlcy81NDI2NzctYmRmMTk5ODcxOTFlMTIyMw?x-oss-process=image/format,png\"/></p>\n&lt;center&gt;\u56fe 7 \u65e0\u9650\u7684\u6d41\u5b58\u50a8&lt;/center&gt;\n<h3>\u6570\u636e\u67e5\u8be2\u548c\u6570\u636e\u5206\u6790</h3>\n<p>Pulsar \u6709\u80fd\u529b\u5b58\u50a8\u6570\u636e\u6d41\u7684\u5b8c\u6574\u5386\u53f2\u8bb0\u5f55\uff0c\u56e0\u6b64\u7528\u6237\u53ef\u4ee5\u5728\u5176\u6570\u636e\u4e0a\u4f7f\u7528\u5404\u79cd\u6570\u636e\u5de5\u5177\u3002Pulsar \u4f7f\u7528 Pulsar SQL \u67e5\u8be2\u5386\u53f2\u6d88\u606f\uff0c\u4f7f\u7528 Presto \u5f15\u64ce\u9ad8\u6548\u67e5\u8be2 BookKeeper \u4e2d\u7684\u6570\u636e\u3002Presto \u662f\u7528\u4e8e\u5927\u6570\u636e\u89e3\u51b3\u65b9\u6848\u7684\u9ad8\u6027\u80fd\u5206\u5e03\u5f0f SQL \u67e5\u8be2\u5f15\u64ce\uff0c\u53ef\u4ee5\u5728\u5355\u4e2a\u67e5\u8be2\u4e2d\u67e5\u8be2\u591a\u4e2a\u6570\u636e\u6e90\u7684\u6570\u636e\u3002Pulsar SQL \u5141\u8bb8 Presto SQL \u5f15\u64ce\u76f4\u63a5\u8bbf\u95ee\u5b58\u50a8\u5c42\u4e2d\u7684\u6570\u636e\uff0c\u4ece\u800c\u5b9e\u73b0\u4ea4\u4e92\u5f0f SQL \u67e5\u8be2\u6570\u636e\uff0c\u800c\u4e0d\u4f1a\u5e72\u6270  Pulsar \u7684\u5176\u4ed6\u5de5\u4f5c\u8d1f\u8f7d\u3002Pulsar \u4e0e Presto \u7684\u96c6\u6210\u5c31\u662f\u4e00\u4e2a\u5f88\u597d\u7684\u4f8b\u5b50\uff0c\u5982\u4e0b\u662f\u4f7f\u7528 Pulsar SQL \u67e5\u8be2\u7684\u793a\u4f8b\u3002</p>\n<p><img alt=\"\" src=\"https://imgconvert.csdnimg.cn/aHR0cHM6Ly91cGxvYWQtaW1hZ2VzLmppYW5zaHUuaW8vdXBsb2FkX2ltYWdlcy81NDI2NzctZTk5YTNkMWRhYmViNDhlNQ?x-oss-process=image/format,png\"/></p>\n&lt;center&gt;\u56fe 8 Presto \u4e0e Apache Pulsar \u7684\u96c6\u6210&lt;/center&gt;\n<h3>Pulsar \u7684\u5468\u8fb9\u751f\u6001</h3>\n<p>\u6279\u5904\u7406\u662f\u5bf9\u6709\u754c\u7684\u6570\u636e\u8fdb\u884c\u5904\u7406\uff0c\u901a\u5e38\u6570\u636e\u4ee5\u6587\u4ef6\u7684\u5f62\u5f0f\u5b58\u50a8\u5728 HDFS \u7b49\u5206\u5e03\u5f0f\u6587\u4ef6\u7cfb\u7edf\u4e2d\u3002\u6d41\u5904\u7406\u5c06\u6570\u636e\u770b\u4f5c\u662f\u6e90\u6e90\u4e0d\u65ad\u7684\u6d41\uff0c\u6d41\u5904\u7406\u7cfb\u7edf\u4ee5\u53d1\u5e03 /\u8ba2\u9605\u65b9\u5f0f\u6d88\u8d39\u6d41\u6570\u636e\u3002\u5f53\u524d\u7684\u5927\u6570\u636e\u5904\u7406\u6846\u67b6\uff0c\u4f8b\u5982 Spark\u3001Flink \u5728 API \u5c42\u548c\u6267\u884c\u5c42\u6b63\u5728\u9010\u6b65\u878d\u5408\u6279\u3001\u6d41\u4f5c\u4e1a\u7684\u63d0\u4ea4\u4e0e\u6267\u884c\uff0c\u800c Pulsar \u7531\u4e8e\u53ef\u4ee5\u5b58\u50a8\u65e0\u9650\u7684\u6d41\u6570\u636e\uff0c\u662f\u6781\u4f73\u7684\u7edf\u4e00\u6570\u636e\u5b58\u50a8\u5e73\u53f0\u3002Pulsar \u8fd8\u53ef\u4ee5\u4e0e\u5176\u4ed6\u6570\u636e\u5904\u7406\u5f15\u64ce\uff08\u4f8b\u5982 Apache Spark \u6216 Apache Flink \uff09\u8fdb\u884c\u7c7b\u4f3c\u96c6\u6210\uff0c\u4f5c\u4e3a\u6279\u6d41\u4e00\u4f53\u7684\u6570\u636e\u5b58\u50a8\u5e73\u53f0\uff0c\u8fd9\u8fdb\u4e00\u6b65\u6269\u5c55\u4e86 Pulsar \u6d88\u606f\u7cfb\u7edf\u4e4b\u5916\u7684\u89d2\u8272\u3002\u4e0b\u56fe\u5c55\u793a\u4e86 Pulsar \u7684\u5468\u8fb9\u751f\u6001\u3002</p>\n<p><img alt=\"\" src=\"https://imgconvert.csdnimg.cn/aHR0cHM6Ly91cGxvYWQtaW1hZ2VzLmppYW5zaHUuaW8vdXBsb2FkX2ltYWdlcy81NDI2NzctYzNjMTY4NGQ0ZjMyMWJiZQ?x-oss-process=image/format,png\"/></p>\n&lt;center&gt;\u56fe 9 Apache Pulsar \u5468\u8fb9\u751f\u6001&lt;/center&gt;\n<h2>\u603b\u7ed3</h2>\n<p>Apache Pulsar \u662f\u4e91\u539f\u751f\u7684\u5206\u5e03\u5f0f\u6d88\u606f\u6d41\u7cfb\u7edf\uff0c\u91c7\u7528\u4e86\u8ba1\u7b97\u548c\u5b58\u50a8\u5206\u5c42\u7684\u67b6\u6784\u548c\u4ee5 Segment \u4e3a\u4e2d\u5fc3\u7684\u5206\u7247\u5b58\u50a8\uff0c\u56e0\u6b64 Apache Pulsar \u5177\u6709\u66f4\u597d\u7684\u6027\u80fd\u3001\u53ef\u6269\u5c55\u6027\u548c\u7075\u6d3b\u6027\uff0c\u662f\u4e00\u6b3e\u53ef\u4ee5\u65e0\u9650\u6269\u5c55\u7684\u5206\u5e03\u5f0f\u6d88\u606f\u961f\u5217\u3002</p>\n<p>Apache Pulsar \u662f\u4e00\u4e2a\u5e74\u8f7b\u7684\u5f00\u6e90\u9879\u76ee\uff0c\u62e5\u6709\u975e\u5e38\u591a\u5438\u5f15\u4eba\u7684\u7279\u6027\u3002Pulsar \u793e\u533a\u7684\u53d1\u5c55\u8fc5\u731b\uff0c\u5728\u4e0d\u540c\u7684\u5e94\u7528\u573a\u666f\u4e0b\u4e0d\u65ad\u6709\u65b0\u7684\u6848\u4f8b\u843d\u5730\u3002\u671f\u5f85\u5927\u5bb6\u80fd\u548c Apache Pulsar \u793e\u533a\u6df1\u5165\u5408\u4f5c\uff0c\u4e00\u8d77\u8fdb\u4e00\u6b65\u5b8c\u5584\u3001\u4f18\u5316 Pulsar \u7684\u7279\u6027\u548c\u529f\u80fd\u3002</p>\n<blockquote>\n<p>\u4f5c\u8005\u4ecb\u7ecd\uff1aSijie Guo\uff0cStreamNative \u8054\u5408\u521b\u59cb\u4eba\uff0cApache BookKeeper \u548c Apache Pulsar PMC \u6210\u5458\u548c Committer\u3002\u4e4b\u524d\u662f Twitter \u6d88\u606f\u7ec4\u7684\u6280\u672f\u8d1f\u8d23\u4eba\uff0c\u4e0e\u4ed6\u4eba\u5171\u540c\u521b\u5efa\u4e86 Apache DistributedLog\u3002\u52a0\u5165 Twitter \u4e4b\u524d\uff0c\u4ed6\u66fe\u5728 Yahoo \uff01\u4ece\u4e8b\u63a8\u9001\u901a\u77e5\u57fa\u7840\u67b6\u6784\u5de5\u4f5c\u3002</p>\n</blockquote>\n<p>\u672c\u6587\u662f\u300c\u5206\u5e03\u5f0f\u7cfb\u7edf\u524d\u6cbf\u6280\u672f\u300d\u4e13\u9898\u6587\u7ae0\uff0c\u76ee\u524d\u8be5\u4e13\u9898\u5728\u6301\u7eed\u66f4\u65b0\u4e2d\uff0c\u6b22\u8fce\u5927\u5bb6\u4fdd\u6301\u5173\u6ce8\ud83d\udc47</p>\n<p><img alt=\"\" src=\"https://imgconvert.csdnimg.cn/aHR0cHM6Ly91cGxvYWQtaW1hZ2VzLmppYW5zaHUuaW8vdXBsb2FkX2ltYWdlcy81NDI2NzctNGIyYWVmMmMwMjQ2MzYzZS5qcGc?x-oss-process=image/format,png\"/></p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/islujw", 
        "name": "islujw", 
        "avatar": "https://cdn.v2ex.com/avatar/c742/e00a/200742_large.png?m=1635782023"
      }, 
      "url": "https://www.v2ex.com/t/626783", 
      "title": "\u6709\u5728 macOS \u914d\u7f6e Apache \u670d\u52a1\u5668\u7684\u5417\uff1f", 
      "id": "https://www.v2ex.com/t/626783", 
      "date_published": "2019-12-07T06:00:25+00:00", 
      "content_html": "<p>macOS \u81ea\u5e26\u4e86 Apache\u3002</p>\n<p>\u57fa\u7840\u529f\u80fd\u914d\u7f6e\u5982\u865a\u62df\u4e3b\u673a\u914d\u7f6e\u6210\u529f\u4e86\uff0c\u4f46 SSL \u914d\u7f6e\u4e00\u76f4\u6ca1\u6709\u6210\u529f\u8fc7\uff0c\u66f4\u9ad8\u7ea7\u7684\u914d\u7f6e\u4e5f\u4e0d\u6562\u4e71\u52a8\u3002Apache \u7684\u5b98\u65b9\u6587\u6863\u4e5f\u6ca1\u6709\u9488\u5bf9 macOS \u7684\u6307\u5357\u3002\u6709\u4e13\u4e1a\u7684\u8d44\u6599\u4f9b\u53c2\u8003\u5417\uff1f</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/lianta", 
        "name": "lianta", 
        "avatar": "https://cdn.v2ex.com/gravatar/78c6facf5fc50d2335e1285d21e2d4d1?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/595361", 
      "title": "\u5927\u4f6c\u4eec\u6c42\u6559\uff1a HttpClients.createDefault()", 
      "id": "https://www.v2ex.com/t/595361", 
      "date_published": "2019-08-26T14:37:45+00:00", 
      "content_html": "<p>\u4f7f\u7528 HttpClients.createDefault() \u83ab\u540d\u8fdb\u5165\u5230 FutureTask\u3002\u5e76\u88ab\u6355\u83b7\u5230 Throwable\u3002 \u6c42\u89e3\uff01\uff01\uff01</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/iamverylovely", 
        "name": "iamverylovely", 
        "avatar": "https://cdn.v2ex.com/gravatar/8b6f0443d38f323e4b935414e70f1d06?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/586565", 
      "title": "LApache \u865a\u62df\u4e3b\u673a\u8bbe\u7f6e.htaccess \u5b9e\u73b0\u5168\u7ad9 HTTPS", 
      "id": "https://www.v2ex.com/t/586565", 
      "date_published": "2019-07-26T12:45:15+00:00", 
      "content_html": "<p>Apache \u865a\u62df\u4e3b\u673a\u5b9e\u73b0 301 HTTPS WWW</p>\n<pre><code class=\"language-conf\">&lt;IfModule mod_rewrite.c&gt;\nRewriteEngine On\nRewriteCond %{HTTP:From-Https} !^on$ [NC,OR] \n#\u5982\u679c\u67d0\u4e9b\u9875\u9762\u6ca1\u6709 301\uff0c\u4e0a\u4e00\u53e5\u6539\u4e3a\uff1aRewriteCond %{HTTPS} !^on$ [NC,OR]\n\nRewriteCond %{HTTP_HOST} ^iamverylovely.com$ [NC]\nRewriteRule ^(.*) https://%{SERVER_NAME}/$1 [R=301,L]\n&lt;/IfModule&gt;\n</code></pre>\n<p>\u7ed3\u679c\u662f\uff1a <a href=\"http://iamverylovely.com\" rel=\"nofollow\">http://iamverylovely.com</a> <a href=\"http://www.iamverylovely.com\" rel=\"nofollow\">http://www.iamverylovely.com</a> <a href=\"https://iamverylovely.com\" rel=\"nofollow\">https://iamverylovely.com</a></p>\n<p>\u5168\u90e8\u8df3\u8f6c\u81f3\uff1a <a href=\"https://www.iamverylovely.com\" rel=\"nofollow\">https://www.iamverylovely.com</a></p>\n<p>\u8bb0\u5f55\u4e00\u4e0b\u3002</p>\n<p>\u5907\u6ce8\uff1a\u4f7f\u7528\u547d\u4ee4\uff1acurl -I \u52a0\u4e0a URL\uff0c\u53ef\u4ee5\u5feb\u901f\u67e5\u770b Header\u3002</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/45gfg9", 
        "name": "45gfg9", 
        "avatar": "https://cdn.v2ex.com/gravatar/559d440e2e726ab0b939dd9277562313?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/576725", 
      "title": "Apache2 \u5982\u4f55\u914d\u7f6e SSL \u8bc1\u4e66\u554a", 
      "id": "https://www.v2ex.com/t/576725", 
      "date_published": "2019-06-23T14:51:28+00:00", 
      "content_html": "<p>\u6700\u8fd1\u5728\u641e\u4e2a\u4eba\u7f51\u7ad9\uff0c\u60f3\u5b9e\u73b0\u901a\u8fc7 https \u8bbf\u95ee\uff0c\u6253\u7b97\u8bbe\u5728\u6811\u8393\u6d3e\u4e0a\n\u4f46\u662f\u51fa\u73b0\u4e86\u95ee\u9898... Safari \u8bbf\u95ee\u65f6\u62a5\u9519\u201c\u6b64\u8fde\u63a5\u975e\u79c1\u4eba\u8fde\u63a5\u201d\uff0c\u201c\u6b64\u7f51\u7ad9\u53ef\u80fd\u5728\u5192\u5145\u2018 45gfg9-rpi3.local \u2019\u6765\u7a83\u53d6\u60a8\u7684\u4e2a\u4eba\u6216\u8d22\u52a1\u4fe1\u606f\u3002\u60a8\u5e94\u56de\u5230\u4e4b\u524d\u7684\u9875\u9762\u3002\u201d\uff0c\u67e5\u770b\u8bc1\u4e66\u201c\u2018 <a href=\"http://c14.45gfg9.net\" rel=\"nofollow\">c14.45gfg9.net</a> \u2019\u8bc1\u4e66\u540d\u79f0\u4e0e\u8f93\u5165\u4e0d\u5339\u914d\u201d</p>\n<p>SSL \u8bc1\u4e66\u662f\u7533\u8bf7\u7684\u817e\u8baf\u4e91\u514d\u8d39\u8bc1\u4e66</p>\n<p>\u914d\u7f6e\u6587\u4ef6 default-ssl.conf <a href=\"https://paste.ubuntu.com/p/M33F5jVmzZ/\" rel=\"nofollow\">https://paste.ubuntu.com/p/M33F5jVmzZ/</a>\n\u5df2\u8f6f\u94fe\u5230 /etc/apache2/sites-enabled\n\u5404\u9879\u4ec0\u4e48 mods \u4e5f\u90fd\u8f6f\u94fe\u5230 /etc/apache2/mods-enable \u4e86</p>\n<p>\u914d\u7f6e\u8ddf\u7740 <a href=\"https://cloud.tencent.com/document/product/400/35243#step6\" rel=\"nofollow\">https://cloud.tencent.com/document/product/400/35243#step6</a> \u8d70\u7684</p>\n<p>\u65b0\u4eba\u5c0f\u900f\u660e\u8bf7\u6c42\u5e2e\u52a9...</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/sxx", 
        "name": "sxx", 
        "avatar": "https://cdn.v2ex.com/gravatar/85019cbf0f24b9c169a956c8baf0d83f?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/574972", 
      "title": "\u8bf7\u6559\u4e50\u4e8e\u52a9\u4eba\u3001\u9ad8\u624b\u5982\u4e91\u7684 V2 \u670b\u53cb\u4eec\uff01", 
      "id": "https://www.v2ex.com/t/574972", 
      "date_published": "2019-06-18T02:07:40+00:00", 
      "content_html": "<p>\u975e\u5e38\u559c\u6b22 V2 \u8fd9\u4e2a\u5927\u5bb6\u5ead\uff0c\u4f46\u672c\u4eba\u6c34\u5e73\u6709\u9650\uff0c\u7279\u5411\u4e50\u4e8e\u52a9\u4eba\u3001\u9ad8\u624b\u5982\u4e91\u7684 V2 \u670b\u53cb\u4eec\u8bf7\u6559\u4e2a\u95ee\u9898\uff1a\n\u6211\u6709\u4e2a\u5c0f\u7f51\u7ad9\uff0c\u4e5f\u6ca1\u4ec0\u4e48\u6d41\u91cf\uff0c\u4e3a\u9632\u6b62\u6240\u5728\u7684 linux \u7684 VPS \u4e3b\u673a\u7684\u88ab\u653b\u51fb\uff0c\u6211\u5b89\u88c5\u4e86 mod_evasive\uff0c\u5728\u914d\u7f6e\u6587\u4ef6\u4e2d\uff0c\u6211\u7f51\u4e0a\u6559\u7a0b\u589e\u52a0\u7684 DOSSystemCommand   \"sudo iptables -A INPUT -s %s -j DROP\"  \u8fd9\u4e2a\u8bed\u53e5\uff0c\u603b\u662f\u4e0d\u6267\u884c\uff08\u4e0d\u751f\u6548\uff09\uff0c\u5bfc\u81f4\u6d4b\u8bd5\u65f6\u8fdb\u884c DDOS \u653b\u51fb\u7684 IP \u65e0\u6cd5\u6dfb\u52a0\u5728\u9632\u706b\u5899\u4e2d\uff0c\u4ee5\u4fbf\u5c4f\u853d\u8fd9\u4e2a IP\u3002\u4f46\u6211\u5728\u5355\u72ec\u6307\u4ee4\u72b6\u6001\u4e0b\u6267\u884c sudo iptables -A INPUT -s 55.55.55.55 -j DROP \u8fd9\u6837\u7684\u547d\u4ee4\u662f\u6709\u6548\u7684\u3002\u6211\u5728\u767e\u5ea6\u548c google \u91cc\u641c\u7d22\u4e86\u4e00\u6574\u5929\uff0c\u4e5f\u505a\u4e86\u65e0\u6570\u5b9e\u9a8c\uff0c\u8fd8\u662f\u6ca1\u89e3\u51b3\uff0c\u6240\u4ee5\u8bf7\u6559\u5404\u4f4d\u670b\u53cb\u548c\u5927\u4f6c\uff0c\u8bf7\u5728\u5fd9\u4e4b\u4e2d\uff0c\u80fd\u5426\u6307\u70b9\u4e00\u4e0b\u6211\uff0c\u591a\u8c22\u591a\u8c22\uff01</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/elsagong", 
        "name": "elsagong", 
        "avatar": "https://cdn.v2ex.com/avatar/444d/4dbc/301403_large.png?m=1536042322"
      }, 
      "url": "https://www.v2ex.com/t/564404", 
      "title": "\u4e00\u4e2a\u670d\u52a1\u5668\u5206\u522b\u8fd0\u884c Apache2 \u5b50\u57df\u540d\u7f51\u7ad9\u548c Nginx \u4e3b\u57df\u540d\u7f51\u7ad9\uff0c\u5b50\u57df\u540d\u4e3a\u4f55\u51fa\u73b0 400 Bad Request\uff1f", 
      "id": "https://www.v2ex.com/t/564404", 
      "date_published": "2019-05-15T08:10:51+00:00", 
      "content_html": "<p>\u4e0b\u5348\u597d\uff0c\u54a8\u8be2\u5927\u5bb6\u5173\u4e8e<code>Apache2</code>\u7684\u95ee\u9898\uff0c\u6211\u5728\u670d\u52a1\u5668\u4e0a\u540c\u65f6\u8fd0\u884c\u4e86 Nginx \uff08 80 \u7aef\u53e3\u7ed1\u5b9a\u7684\u4e3b\u57df\u540d\uff09\uff0c\u548c Apache2 \uff08 8080 \u7aef\u53e3\u7ed1\u5b9a\u4e86\u5b50\u57df\u540d\uff09\uff0c\u53ef\u4ee5\u901a\u8fc7<code>localhost:8080</code>\u8bbf\u95ee<code>Apache2</code>\u7684\u7f51\u7ad9\uff0c\u4f46\u662f\u8bbf\u95ee\u5b50\u57df\u540d<code><a href=\"http://sub.domain.com\" rel=\"nofollow\">sub.domain.com</a></code>\u6216\u8005<code><a href=\"http://sub.domain.com:8080\" rel=\"nofollow\">sub.domain.com:8080</a></code>\u65f6\uff0c\u4f1a\u51fa\u73b0 Nginx 80 \u7aef\u53e3\u7684<code>400 Bad Request</code>\u9519\u8bef\uff0c\u53ef\u662f\u6211\u5b50\u57df\u540d\u660e\u660e\u7ed1\u5b9a\u7684\u662f Apache2 \u7684 8080 \u7aef\u53e3\u554a\ud83d\ude02</p>\n<p>\u6709\u901a\u8fc7<code>netstat -tlpn</code>\u67e5\u770b\u7aef\u53e3\u60c5\u51b5, \u786e\u5b9a tcp6 \u662f apache2 \u7684 8080 \u7aef\u53e3\uff0ctcp \u662f nginx \u7684 80 \u7aef\u53e3\uff0c\u6709\u6267\u884c<code>lsof -i TCP:8080 -s TCP:LISTEN</code>, \u9700\u8981\u91cd\u542f\u7684\u670d\u52a1\u90fd\u91cd\u542f\u8fc7.....</p>\n<p>\u6c42\u52a9\uff0c\u611f\u8c22</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/getui", 
        "name": "getui", 
        "avatar": "https://cdn.v2ex.com/avatar/72ad/8dd8/132512_large.png?m=1578902394"
      }, 
      "url": "https://www.v2ex.com/t/555199", 
      "title": "\u4e2a\u63a8\u57fa\u4e8e Apache Pulsar \u7684\u4f18\u5148\u7ea7\u961f\u5217\u65b9\u6848", 
      "id": "https://www.v2ex.com/t/555199", 
      "date_published": "2019-04-15T02:25:07+00:00", 
      "content_html": "<p><img src=\"https://diycode.b0.upaiyun.com/photo/2019/ab4679686c311336ec015cfa21509034.png\" alt=\"\">\n<em>\u4f5c\u8005\uff1a\u4e2a\u63a8\u5e73\u53f0\u7814\u53d1\u5de5\u7a0b\u5e08 \u7965\u5b50</em></p>\n<h1>\u4e00\u3001\u4e1a\u52a1\u80cc\u666f</h1>\n<p>\u5728\u4e2a\u63a8\u7684\u63a8\u9001\u573a\u666f\u4e2d\uff0c\u6d88\u606f\u961f\u5217\u5728\u6574\u4e2a\u7cfb\u7edf\u4e2d\u5360\u6709\u975e\u5e38\u91cd\u8981\u7684\u4f4d\u7f6e\u3002\n<img src=\"https://diycode.b0.upaiyun.com/photo/2019/c1c748ee86040f50da5eb8da0df4e1ac.png\" alt=\"\">\n\u5f53 APP \u6709\u63a8\u9001\u9700\u6c42\u7684\u65f6\u5019, \u4f1a\u5411\u4e2a\u63a8\u53d1\u9001\u4e00\u6761\u63a8\u9001\u547d\u4ee4\uff0c\u63a5\u5230\u63a8\u9001\u9700\u6c42\u540e\uff0c\u6211\u4eec\u4f1a\u628a APP \u8981\u6c42\u63a8\u9001\u6d88\u606f\u7684\u7528\u6237\u653e\u5165\u4e0b\u53d1\u961f\u5217\u4e2d\uff0c\u8fdb\u884c\u6d88\u606f\u4e0b\u53d1\uff1b\u5f53\u540c\u65f6\u6709\u591a\u4e2a APP \u8fdb\u884c\u6d88\u606f\u4e0b\u53d1\u65f6\uff0c\u96be\u514d\u4f1a\u51fa\u73b0\u8d44\u6e90\u7ade\u4e89\u7684\u60c5\u51b5, \u56e0\u6b64\u5c31\u4ea7\u751f\u4e86\u4f18\u5148\u7ea7\u961f\u5217\u7684\u9700\u6c42\uff0c\u5728\u4e0b\u53d1\u8d44\u6e90\u56fa\u5b9a\u7684\u60c5\u51b5\u4e0b, \u9ad8\u4f18\u5148\u7ea7\u7684\u7528\u6237\u9700\u8981\u6709\u66f4\u591a\u7684\u4e0b\u53d1\u8d44\u6e90\u3002</p>\n<h1>\u4e8c\u3001\u57fa\u4e8e Kafka \u7684\u4f18\u5148\u7ea7\u961f\u5217\u65b9\u6848</h1>\n<p>\u9488\u5bf9\u4ee5\u4e0a\u573a\u666f\uff0c\u4e2a\u63a8\u57fa\u4e8e Kafka \u8bbe\u8ba1\u4e86\u7b2c\u4e00\u7248\u7684\u4f18\u5148\u7ea7\u961f\u5217\u65b9\u6848\u3002Kafka \u662f LinkedIn \u5f00\u53d1\u7684\u4e00\u4e2a\u9ad8\u6027\u80fd\u3001\u5206\u5e03\u5f0f\u6d88\u606f\u7cfb\u7edf\uff1b Kafka \u5728\u4e2a\u63a8\u6709\u975e\u5e38\u5e7f\u6cdb\u7684\u5e94\u7528\uff0c\u5982\u65e5\u5fd7\u6536\u96c6\u3001\u5728\u7ebf\u548c\u79bb\u7ebf\u6d88\u606f\u5206\u53d1\u7b49\u3002</p>\n<p><strong>\u67b6\u6784</strong>\n<img src=\"https://diycode.b0.upaiyun.com/photo/2019/95a37e4e8e5ba98d6188998481bc8e34.png\" alt=\"\">\n\u5728\u8be5\u65b9\u6848\u4e2d\uff0c\u4e2a\u63a8\u5c06\u4f18\u5148\u7ea7\u7edf\u4e00\u8bbe\u5b9a\u4e3a\u9ad8\u3001\u4e2d\u3001\u4f4e\u4e09\u4e2a\u7ea7\u522b\u3002\u5177\u4f53\u64cd\u4f5c\u65b9\u6848\u5982\u4e0b\uff1a</p>\n<ol>\n<li>\n<p>\u5bf9\u67d0\u4e2a\u4f18\u5148\u7ea7\u6839\u636e task (\u5355\u6b21\u63a8\u9001\u4efb\u52a1)\u7ef4\u5ea6\uff0c\u5b58\u5165\u4e0d\u540c\u7684 Topic\uff0c\u4e00\u4e2a task \u53ea\u5199\u5165\u4e00\u4e2a Topic\uff0c\u4e00\u4e2a Topic \u53ef\u5b58\u591a\u4e2a task \uff1b</p>\n</li>\n<li>\n<p>\u6d88\u8d39\u6a21\u5757\u6839\u636e\u4f18\u5148\u7ea7\u914d\u989d(\u5982 6:3:1)\uff0c\u83b7\u53d6\u4e0d\u540c\u4f18\u5148\u7ea7\u7684\u6d88\u606f\u6570\uff0c\u540c\u4e00\u4f18\u5148\u7ea7\u8f6e\u8be2\u83b7\u53d6\u6d88\u606f\uff1b\u8fd9\u6837\u65e2\u4fdd\u8bc1\u4e86\u9ad8\u4f18\u5148\u7ea7\u7528\u6237\u53ef\u4ee5\u66f4\u5feb\u5730\u53d1\u9001\u6d88\u606f\uff0c\u53c8\u907f\u514d\u4e86\u4f4e\u4f18\u5148\u7ea7\u7528\u6237\u51fa\u73b0\u6ca1\u6709\u4e0b\u53d1\u7684\u60c5\u51b5\u3002</p>\n</li>\n</ol>\n<p><strong>Kafka \u65b9\u6848\u9047\u5230\u7684\u95ee\u9898</strong></p>\n<p>\u968f\u7740\u4e2a\u63a8\u4e1a\u52a1\u7684\u4e0d\u65ad\u53d1\u5c55\uff0c\u63a5\u5165\u7684 APP \u6570\u91cf\u9010\u6e10\u589e\u591a\uff0c\u7b2c\u4e00\u7248\u7684\u4f18\u5148\u7ea7\u65b9\u6848\u4e5f\u9010\u6e10\u66b4\u9732\u51fa\u4e00\u4e9b\u95ee\u9898\uff1a</p>\n<ol>\n<li>\u5f53\u76f8\u540c\u4f18\u5148\u7ea7\u7684 APP \u5728\u540c\u4e00\u65f6\u523b\u63a8\u9001\u4efb\u52a1\u8d8a\u6765\u8d8a\u591a\u65f6\uff0c\u540e\u9762\u8fdb\u5165\u7684 task \u6d88\u606f\u4f1a\u56e0\u4e3a\u524d\u9762 task \u6d88\u606f\u8fd8\u5b58\u5728\u961f\u5217\u60c5\u51b5\u800c\u51fa\u73b0\u5ef6\u8fdf\u3002\u5982\u4e0b\u56fe\u6240\u793a, \u5f53 task1 \u6d88\u606f\u91cf\u8fc7\u5927\u65f6\uff0c\u5728 task1 \u6d88\u8d39\u7ed3\u675f\u524d\uff0ctaskN \u5c06\u4e00\u76f4\u5904\u4e8e\u7b49\u5f85\u72b6\u6001\u3002\n<img src=\"https://diycode.b0.upaiyun.com/photo/2019/a26e4fa91211c32a08903323cc299bf0.png\" alt=\"\"></li>\n<li>Kafka \u5728 Topic \u6570\u91cf\u7531 64 \u589e\u957f\u5230 256 \u65f6\uff0c\u541e\u5410\u91cf\u4e0b\u964d\u4e25\u91cd\uff0cKafka \u7684\u6bcf\u4e2a Topic\u3001\u6bcf\u4e2a\u5206\u533a\u90fd\u4f1a\u5bf9\u5e94\u4e00\u4e2a\u7269\u7406\u6587\u4ef6\u3002\u5f53 Topic \u6570\u91cf\u589e\u52a0\u65f6\uff0c\u6d88\u606f\u5206\u6563\u7684\u843d\u76d8\u7b56\u7565\u4f1a\u5bfc\u81f4\u78c1\u76d8 IO \u7ade\u4e89\u6fc0\u70c8\uff0c\u56e0\u6b64\u6211\u4eec\u4e0d\u80fd\u4ec5\u901a\u8fc7\u589e\u52a0 Topic \u6570\u91cf\u6765\u7f13\u89e3\u7b2c\u4e00\u70b9\u4e2d\u7684\u95ee\u9898\u3002</li>\n</ol>\n<p>\u57fa\u4e8e\u4e0a\u8ff0\u95ee\u9898\uff0c\u4e2a\u63a8\u8fdb\u884c\u4e86\u65b0\u4e00\u8f6e\u7684\u6280\u672f\u9009\u578b, \u6211\u4eec\u9700\u8981\u53ef\u4ee5\u521b\u5efa\u5927\u91cf\u7684 Topic, \u540c\u65f6\u541e\u5410\u6027\u80fd\u4e0d\u80fd\u6bd4 Kafka \u900a\u8272\u3002\u7ecf\u8fc7\u4e00\u6bb5\u65f6\u95f4\u7684\u8c03\u7814\uff0cApache Pulsar \u5f15\u8d77\u4e86\u6211\u4eec\u7684\u5173\u6ce8\u3002</p>\n<h1>\u4e09\u3001\u4e3a\u4ec0\u4e48\u662f Pulsar</h1>\n<p>Apache Pulsar \u662f\u4e00\u4e2a\u4f01\u4e1a\u7ea7\u7684\u5206\u5e03\u5f0f\u6d88\u606f\u7cfb\u7edf\uff0c\u6700\u521d\u7531 Yahoo \u5f00\u53d1\uff0c\u5728 2016 \u5e74\u5f00\u6e90\uff0c\u5e76\u4e8e 2018 \u5e74 9 \u6708\u6bd5\u4e1a\u6210\u4e3a Apache \u57fa\u91d1\u4f1a\u7684\u9876\u7ea7\u9879\u76ee\u3002Pulsar \u5df2\u7ecf\u5728 Yahoo \u7684\u751f\u4ea7\u73af\u5883\u4f7f\u7528\u4e86\u4e09\u5e74\u591a\uff0c\u4e3b\u8981\u670d\u52a1\u4e8e Mail\u3001Finance\u3001Sports\u3001Flickr\u3001the Gemini Ads platform\u3001Sherpa (Yahoo \u7684 KV \u5b58\u50a8)\u3002</p>\n<p><strong>\u67b6\u6784</strong>\n<img src=\"https://diycode.b0.upaiyun.com/photo/2019/1b7a8c6c18b778dd5809acc2712bd11d.png\" alt=\"\"></p>\n<p><strong>Topic \u6570\u91cf</strong>\nPulsar \u53ef\u4ee5\u652f\u6301\u767e\u4e07\u7ea7\u522b Topic \u6570\u91cf\u7684\u6269\u5c55\uff0c\u540c\u65f6\u8fd8\u80fd\u4e00\u76f4\u4fdd\u6301\u826f\u597d\u7684\u6027\u80fd\u3002Topic \u7684\u4f38\u7f29\u6027\u53d6\u51b3\u4e8e\u5b83\u7684\u5185\u90e8\u7ec4\u7ec7\u548c\u5b58\u50a8\u65b9\u5f0f\u3002Pulsar \u7684\u6570\u636e\u4fdd\u5b58\u5728 bookie (BookKeeper \u670d\u52a1\u5668)\u4e0a\uff0c\u5904\u4e8e\u5199\u72b6\u6001\u7684\u4e0d\u540c Topic \u7684\u6d88\u606f\uff0c\u5728\u5185\u5b58\u4e2d\u6392\u5e8f\uff0c\u6700\u7ec8\u805a\u5408\u4fdd\u5b58\u5230\u5927\u6587\u4ef6\u4e2d\uff0c\u5728 Bookie \u4e2d\u9700\u8981\u66f4\u5c11\u7684\u6587\u4ef6\u53e5\u67c4\u3002\u53e6\u4e00\u65b9\u9762 Bookie \u7684 IO \u66f4\u5c11\u4f9d\u8d56\u4e8e\u6587\u4ef6\u7cfb\u7edf\u7684 Pagecache\uff0cPulsar \u4e5f\u56e0\u6b64\u80fd\u591f\u652f\u6301\u5927\u91cf\u7684\u4e3b\u9898\u3002</p>\n<p><strong>\u6d88\u8d39\u6a21\u578b</strong>\nPulsar \u652f\u6301\u4e09\u79cd\u6d88\u8d39\u6a21\u578b\uff1aExclusive\u3001Shared \u548c Failover\u3002\n<img src=\"https://diycode.b0.upaiyun.com/photo/2019/1afe29d3b091795f3f2b0ebd5fb59cef.png\" alt=\"\">\n<strong>Exclusive (\u72ec\u4eab)</strong>\uff1a\u4e00\u4e2a Topic \u53ea\u80fd\u88ab\u4e00\u4e2a\u6d88\u8d39\u8005\u6d88\u8d39\u3002Pulsar \u9ed8\u8ba4\u4f7f\u7528\u8fd9\u79cd\u6a21\u5f0f\u3002</p>\n<p><strong>Shared(\u5171\u4eab)</strong>\uff1a\u5171\u4eab\u6a21\u5f0f\uff0c\u591a\u4e2a\u6d88\u8d39\u8005\u53ef\u4ee5\u8fde\u63a5\u5230\u540c\u4e00\u4e2a Topic\uff0c\u6d88\u606f\u4f9d\u6b21\u5206\u53d1\u7ed9\u6d88\u8d39\u8005\u3002\u5f53\u4e00\u4e2a\u6d88\u8d39\u8005\u5b95\u673a\u6216\u8005\u4e3b\u52a8\u65ad\u5f00\u8fde\u63a5\u65f6\uff0c\u90a3\u4e48\u5206\u53d1\u7ed9\u8fd9\u4e2a\u6d88\u8d39\u8005\u7684\u672a\u786e\u8ba4(ack)\u7684\u6d88\u606f\u4f1a\u5f97\u5230\u91cd\u65b0\u8c03\u5ea6\uff0c\u5206\u53d1\u7ed9\u5176\u4ed6\u6d88\u8d39\u8005\u3002</p>\n<p><strong>Failover (\u707e\u5907)</strong>\uff1a\u4e00\u4e2a\u8ba2\u9605\u540c\u65f6\u53ea\u6709\u4e00\u4e2a\u6d88\u8d39\u8005\uff0c\u53ef\u4ee5\u6709\u591a\u4e2a\u5907\u4efd\u6d88\u8d39\u8005\u3002\u4e00\u65e6\u4e3b\u6d88\u8d39\u8005\u6545\u969c\uff0c\u5219\u5907\u4efd\u6d88\u8d39\u8005\u63a5\u7ba1\u3002\u4e0d\u4f1a\u51fa\u73b0\u540c\u65f6\u6709\u4e24\u4e2a\u6d3b\u8dc3\u7684\u6d88\u8d39\u8005\u3002</p>\n<p>Exclusive \u548c Failover \u8ba2\u9605\uff0c\u4ec5\u5141\u8bb8\u4e00\u4e2a\u6d88\u8d39\u8005\u6765\u4f7f\u7528\u548c\u6d88\u8d39\u6bcf\u4e2a\u8ba2\u9605\u7684 Topic\u3002\u8fd9\u4e24\u79cd\u6a21\u5f0f\u90fd\u6309 Topic \u5206\u533a\u987a\u5e8f\u4f7f\u7528\u6d88\u606f\u3002\u5b83\u4eec\u6700\u9002\u7528\u4e8e\u9700\u8981\u4e25\u683c\u6d88\u606f\u987a\u5e8f\u7684\u6d41(Stream)\u7528\u4f8b\u3002</p>\n<p>Shared \u5141\u8bb8\u6bcf\u4e2a\u4e3b\u9898\u5206\u533a\u6709\u591a\u4e2a\u6d88\u8d39\u8005\u3002\u540c\u4e00\u4e2a\u8ba2\u9605\u4e2d\u7684\u6bcf\u4e2a\u6d88\u8d39\u8005\u4ec5\u63a5\u6536 Topic \u5206\u533a\u7684\u4e00\u90e8\u5206\u6d88\u606f\u3002Shared \u6700\u9002\u7528\u4e8e\u4e0d\u9700\u8981\u4fdd\u8bc1\u6d88\u606f\u987a\u5e8f\u961f\u5217(Queue)\u7684\u4f7f\u7528\u6a21\u5f0f\uff0c\u5e76\u4e14\u53ef\u4ee5\u6309\u7167\u9700\u8981\u4efb\u610f\u6269\u5c55\u6d88\u8d39\u8005\u7684\u6570\u91cf\u3002</p>\n<p><strong>\u5b58\u50a8</strong>\nPulsar \u5f15\u5165\u4e86 Apache BookKeeper \u4f5c\u4e3a\u5b58\u50a8\u5c42\uff0cBookKeeper \u662f\u4e00\u4e2a\u4e13\u95e8\u4e3a\u5b9e\u65f6\u7cfb\u7edf\u4f18\u5316\u8fc7\u7684\u5206\u5e03\u5f0f\u5b58\u50a8\u7cfb\u7edf\uff0c\u5177\u6709\u53ef\u6269\u5c55\u3001\u9ad8\u53ef\u7528\u3001\u4f4e\u5ef6\u8fdf\u7b49\u7279\u6027\u3002\u5177\u4f53\u4ecb\u7ecd\uff0c\u8bf7\u53c2\u8003 <a href=\"https://github.com/apache/bookkeeper\" rel=\"nofollow\">BookKeeper \u5b98\u7f51</a>\u3002</p>\n<p><strong>Segment</strong>\nBookKeeper \u4ee5 Segment (\u5728 BookKeeper \u5185\u90e8\u88ab\u79f0\u4f5c ledger) \u4f5c\u4e3a\u5b58\u50a8\u7684\u57fa\u672c\u5355\u5143\u3002\u4ece Segment \u5230\u6d88\u606f\u7c92\u5ea6\uff0c\u90fd\u4f1a\u5747\u5300\u5206\u6563\u5230 BookKeeper \u7684\u96c6\u7fa4\u4e2d\u3002\u8fd9\u79cd\u673a\u5236\u4fdd\u8bc1\u4e86\u6570\u636e\u548c\u670d\u52a1\u5747\u5300\u5206\u6563\u5728 BookKeeper \u96c6\u7fa4\u4e2d\u3002</p>\n<p>Pulsar \u548c Kafka \u90fd\u662f\u57fa\u4e8e partition \u7684\u903b\u8f91\u6982\u5ff5\u6765\u505a Topic \u5b58\u50a8\u7684\u3002\u6700\u6839\u672c\u7684\u4e0d\u540c\u662f\uff0cKafka \u7684\u7269\u7406\u5b58\u50a8\u662f\u4ee5 partition \u4e3a\u5355\u4f4d\u7684\uff0c\u6bcf\u4e2a partition \u5fc5\u987b\u4f5c\u4e3a\u4e00\u4e2a\u6574\u4f53(\u4e00\u4e2a\u76ee\u5f55)\u5b58\u50a8\u5728\u67d0\u4e2a broker \u4e0a\u3002 \u800c Pulsar \u7684 partition \u662f\u4ee5 segment \u4f5c\u4e3a\u7269\u7406\u5b58\u50a8\u7684\u5355\u4f4d\uff0c\u6bcf\u4e2a partition \u4f1a\u518d\u88ab\u6253\u6563\u5e76\u5747\u5300\u5206\u6563\u5230\u591a\u4e2a bookie \u8282\u70b9\u4e2d\u3002</p>\n<p>\u8fd9\u6837\u7684\u76f4\u63a5\u5f71\u54cd\u662f\uff0cKafka \u7684 partition \u7684\u5927\u5c0f\uff0c\u53d7\u5236\u4e8e\u5355\u53f0 broker \u7684\u5b58\u50a8\uff1b\u800c Pulsar \u7684 partition \u5219\u53ef\u4ee5\u5229\u7528\u6574\u4e2a\u96c6\u7fa4\u7684\u5b58\u50a8\u5bb9\u91cf\u3002\n<img src=\"https://diycode.b0.upaiyun.com/photo/2019/90f8894f00f052fa705662b92a0ed736.png\" alt=\"\"></p>\n<p><strong>\u6269\u5bb9</strong>\n\u5f53 partition \u7684\u5bb9\u91cf\u8fbe\u5230\u4e0a\u9650\u540e\uff0c\u9700\u8981\u6269\u5bb9\u7684\u65f6\u5019\uff0c\u5982\u679c\u73b0\u6709\u7684\u5355\u53f0\u673a\u5668\u4e0d\u80fd\u6ee1\u8db3\uff0cKafka \u53ef\u80fd\u9700\u8981\u6dfb\u52a0\u65b0\u7684\u5b58\u50a8\u8282\u70b9\uff0c\u5e76\u5c06 partition \u7684\u6570\u636e\u5728\u8282\u70b9\u4e4b\u95f4\u642c\u79fb\u8fbe\u5230 rebalance \u7684\u72b6\u6001\u3002</p>\n<p>\u800c Pulsar \u53ea\u9700\u6dfb\u52a0\u65b0\u7684 Bookie \u5b58\u50a8\u8282\u70b9\u5373\u53ef\u3002\u65b0\u52a0\u5165\u7684\u8282\u70b9\u7531\u4e8e\u5269\u4f59\u7a7a\u95f4\u5927\uff0c\u4f1a\u88ab\u4f18\u5148\u4f7f\u7528\uff0c\u63a5\u6536\u66f4\u591a\u7684\u65b0\u6570\u636e\uff1b\u6574\u4e2a\u6269\u5bb9\u8fc7\u7a0b\u4e0d\u6d89\u53ca\u4efb\u4f55\u5df2\u6709\u6570\u636e\u7684\u62f7\u8d1d\u548c\u642c\u79fb\u3002\n<img src=\"https://diycode.b0.upaiyun.com/photo/2019/e64fb065d08f8297e7d8816d045463f2.png\" alt=\"\"></p>\n<p><strong>Broker \u6545\u969c</strong>\nPulsar \u5728\u5355\u4e2a\u8282\u70b9\u5931\u8d25\u65f6\u4e5f\u4f1a\u4f53\u73b0\u540c\u6837\u7684\u4f18\u52bf\u3002\u5982\u679c Pulsar \u7684\u67d0\u4e2a\u670d\u52a1\u8282\u70b9 broker \u5931\u6548\uff0c\u7531\u4e8e broker \u662f\u65e0\u72b6\u6001\u7684\uff0c\u5176\u4ed6\u7684 broker \u53ef\u4ee5\u5f88\u5feb\u63a5\u7ba1 Topic\uff0c\u4e0d\u4f1a\u6d89\u53ca Topic \u6570\u636e\u7684\u62f7\u8d1d\uff1b\u5982\u679c\u5b58\u50a8\u8282\u70b9 Bookie \u5931\u6548\uff0c\u5728\u96c6\u7fa4\u540e\u53f0\u4e2d\uff0c\u5176\u4ed6\u7684 Bookie \u4f1a\u4ece\u591a\u4e2a Bookie \u8282\u70b9\u4e2d\u5e76\u53d1\u8bfb\u53d6\u6570\u636e\uff0c\u5e76\u5bf9\u5931\u6548\u8282\u70b9\u7684\u6570\u636e\u81ea\u52a8\u8fdb\u884c\u6062\u590d\uff0c\u5bf9\u524d\u7aef\u670d\u52a1\u4e0d\u4f1a\u9020\u6210\u5f71\u54cd\u3002\n<img src=\"https://diycode.b0.upaiyun.com/photo/2019/d51910108c9d7ca53dc361fe7f491531.png\" alt=\"\"></p>\n<p><strong>Bookie \u6545\u969c</strong>\nApache BookKeeper \u4e2d\u7684\u526f\u672c\u4fee\u590d\u662f Segment (\u751a\u81f3\u662f Entry)\u7ea7\u522b\u7684\u591a\u5bf9\u591a\u5feb\u901f\u4fee\u590d\u3002\u8fd9\u79cd\u65b9\u5f0f\u53ea\u4f1a\u590d\u5236\u5fc5\u987b\u7684\u6570\u636e\uff0c\u8fd9\u6bd4\u91cd\u65b0\u590d\u5236\u6574\u4e2a\u4e3b\u9898\u5206\u533a\u8981\u7cbe\u7ec6\u3002\u5982\u4e0b\u56fe\u6240\u793a\uff0c\u5f53\u9519\u8bef\u53d1\u751f\u65f6\uff0cApache BookKeeper \u53ef\u4ee5\u4ece bookie 3 \u548c bookie 4 \u4e2d\u8bfb\u53d6 Segment 4 \u4e2d\u7684\u6d88\u606f\uff0c\u5e76\u5728 bookie 1 \u5904\u4fee\u590d Segment 4\u3002\u6240\u6709\u7684\u526f\u672c\u4fee\u590d\u90fd\u5728\u540e\u53f0\u8fdb\u884c\uff0c\u5bf9 Broker \u548c\u5e94\u7528\u900f\u660e\u3002</p>\n<p>\u5f53\u67d0\u4e2a Bookie \u8282\u70b9\u51fa\u9519\u65f6\uff0cBookKeeper \u4f1a\u81ea\u52a8\u6dfb\u52a0\u53ef\u7528\u7684\u65b0 Bookie \u6765\u66ff\u6362\u5931\u8d25\u7684 Bookie\uff0c\u51fa\u9519\u7684 Bookie \u4e2d\u7684\u6570\u636e\u5728\u540e\u53f0\u6062\u590d\uff0c\u6240\u6709 Broker \u7684\u5199\u5165\u4e0d\u4f1a\u88ab\u6253\u65ad\uff0c\u800c\u4e14\u4e0d\u4f1a\u727a\u7272\u4e3b\u9898\u5206\u533a\u7684\u53ef\u7528\u6027\u3002\n<img src=\"https://diycode.b0.upaiyun.com/photo/2019/285a97d6bc87143b3859dcf267283811.png\" alt=\"\"></p>\n<h1>\u56db\u3001\u57fa\u4e8e Pulsar \u7684\u4f18\u5148\u7ea7\u961f\u5217\u65b9\u6848</h1>\n<p>\u5728\u8bbe\u8ba1\u601d\u8def\u4e0a\uff0cPulsar \u65b9\u6848\u548c Kafka \u65b9\u6848\u5e76\u6ca1\u6709\u591a\u5927\u533a\u522b\u3002\u4f46\u5728\u65b0\u65b9\u6848\u4e2d\uff0c\u4e2a\u63a8\u6280\u672f\u56e2\u961f\u501f\u52a9 Pulsar \u7684\u7279\u6027\uff0c\u89e3\u51b3\u4e86 Kafka \u65b9\u6848\u4e2d\u5b58\u5728\u7684\u95ee\u9898\u3002</p>\n<ol>\n<li>\u6839\u636e task \u52a8\u6001\u751f\u6210 Topic\uff0c\u4fdd\u8bc1\u4e86\u540e\u8fdb\u5165\u7684 task \u4e0d\u4f1a\u56e0\u4e3a\u5176\u4ed6 task \u6d88\u606f\u5806\u79ef\u800c\u9020\u6210\u7b49\u5f85\u60c5\u51b5\u3002</li>\n<li>\u4e2d\u9ad8\u4f18\u5148\u7ea7 task \u90fd\u72ec\u4eab\u4e00\u4e2a Topic\uff0c\u4f4e\u4f18\u5148\u7ea7 task \u5171\u4eab n \u4e2a Topic\u3002</li>\n<li>\u76f8\u540c\u4f18\u5148\u7ea7\u5185\uff0c\u5404\u4e2a task \u8f6e\u8be2\u8bfb\u53d6\u6d88\u606f\uff0c\u914d\u989d\u6ee1\u540e\u6d41\u8f6c\u81f3\u4e0b\u4e00\u4e2a\u4f18\u5148\u7ea7\u3002</li>\n<li>\u76f8\u540c\u4f18\u5148\u7ea7\u5185, \u5404\u4e2a task \u53ef\u52a8\u6001\u8c03\u6574 quota\uff0c \u5728\u76f8\u540c\u673a\u4f1a\u5185\uff0c\u53ef\u8bfb\u53d6\u66f4\u591a\u6d88\u606f\u3002</li>\n<li>\u5229\u7528 Shared \u6a21\u5f0f, \u53ef\u4ee5\u52a8\u6001\u6dfb\u52a0\u5220\u9664 consumer\uff0c\u4e14\u4e0d\u4f1a\u89e6\u53d1 Rebalance \u60c5\u51b5\u3002</li>\n<li>\u5229\u7528 BookKeeper \u7279\u6027\uff0c\u53ef\u4ee5\u66f4\u7075\u6d3b\u7684\u6dfb\u52a0\u5b58\u50a8\u8d44\u6e90\u3002\n<img src=\"https://diycode.b0.upaiyun.com/photo/2019/d200a5033411d9ce43c20d86f97b4a64.png\" alt=\"\"></li>\n</ol>\n<h1>\u4e94\u3001Pulsar \u5176\u4ed6\u5b9e\u8df5</h1>\n<ol>\n<li>\u4e0d\u540c subscription \u4e4b\u95f4\u76f8\u5bf9\u72ec\u7acb\uff0c\u5982\u679c\u60f3\u8981\u91cd\u590d\u6d88\u8d39\u67d0\u4e2a Topic \u7684\u6d88\u606f\uff0c\u9700\u8981\u4f7f\u7528\u4e0d\u540c\u7684 subscriptionName \u8ba2\u9605\uff1b\u4f46\u662f\u4e00\u76f4\u589e\u52a0\u65b0\u7684 subscriptionName\uff0cbacklog  \u4f1a\u4e0d\u65ad\u7d2f\u79ef\u3002</li>\n<li>\u5982\u679c Topic \u65e0\u4eba\u8ba2\u9605\uff0c\u53d1\u7ed9\u5b83\u7684\u6d88\u606f\u9ed8\u8ba4\u4f1a\u88ab\u5220\u9664\u3002\u56e0\u6b64\u5982\u679c producer \u5148\u53d1\u9001\uff0cconsumer \u540e\u63a5\u6536\uff0c\u4e00\u5b9a\u8981\u786e\u4fdd producer \u53d1\u9001\u4e4b\u524d\uff0cTopic \u6709 subscription \u5b58\u5728(\u54ea\u6015 subscribe \u4e4b\u540e close \u6389)\uff0c\u5426\u5219\u8fd9\u6bb5\u65f6\u95f4\u53d1\u9001\u7684\u6d88\u606f\u4f1a\u5bfc\u81f4\u65e0\u4eba\u5904\u7406\u3002</li>\n<li>\u5982\u679c\u65e2\u6ca1\u6709\u4eba\u53d1\u9001\u6d88\u606f\uff0c\u53c8\u6ca1\u6709\u4eba\u8ba2\u9605\u6d88\u606f\uff0c\u4e00\u6bb5\u65f6\u95f4\u540e Topic \u4f1a\u81ea\u52a8\u5220\u9664\u3002</li>\n<li>Pulsar \u7684 TTL \u7b49\u8bbe\u7f6e\uff0c\u662f\u9488\u5bf9\u6574\u4e2a namespace \u8d77\u6548\u7684\uff0c\u65e0\u6cd5\u9488\u5bf9\u5355\u4e2a Topic\u3002</li>\n<li>Pulsar \u7684\u952e\u90fd\u5efa\u7acb\u5728 zookeeper \u7684\u6839\u76ee\u5f55\u4e0a\uff0c\u5728\u521d\u59cb\u5316\u65f6\u5efa\u8bae\u589e\u52a0\u603b\u8282\u70b9\u540d\u3002</li>\n<li>\u76ee\u524d Pulsar \u7684 java api \u8bbe\u8ba1\uff0c\u6d88\u606f\u9ed8\u8ba4\u9700\u8981\u663e\u5f0f\u786e\u8ba4\uff0c\u8fd9\u4e00\u70b9\u8ddf Kafka \u4e0d\u4e00\u6837\u3002</li>\n<li>Pulsar dashboard \u4e0a\u7684 storage size \u548c prometheus \u4e0a\u7684 storage size (\u5305\u542b\u526f\u672c\u5927\u5c0f)\u6982\u5ff5\u4e0d\u4e00\u6837\u3002</li>\n<li>\u628a<code>dbStorage_rocksDB_blockCacheSize</code> \u8bbe\u7f6e\u7684\u8db3\u591f\u5927\uff1b\u5f53\u6d88\u606f\u4f53\u91cf\u5927\uff0c\u51fa\u73b0 backlog \u5927\u91cf\u5806\u79ef\u65f6, \u4f7f\u7528\u9ed8\u8ba4\u5927\u5c0f(256M)\u4f1a\u51fa\u73b0\u8bfb\u8017\u65f6\u8fc7\u5927\u60c5\u51b5\uff0c\u5bfc\u81f4\u6d88\u8d39\u53d8\u6162\u3002</li>\n<li>\u4f7f\u7528\u591a partition\uff0c\u63d0\u9ad8\u541e\u5410\u3002</li>\n<li>\u5728\u7cfb\u7edf\u51fa\u73b0\u5f02\u5e38\u65f6\uff0c\u4e3b\u52a8\u6293\u53d6 stats \u548c stats-internal\uff0c\u91cc\u9762\u6709\u5f88\u591a\u6709\u7528\u6570\u636e\u3002</li>\n<li>\u5982\u679c\u4e1a\u52a1\u4e2d\u4f1a\u51fa\u73b0\u5355 Topic \u4f53\u91cf\u8fc7\u5927\u7684\u60c5\u51b5\uff0c\u5efa\u8bae\u628a <code>backlogQuotaDefaultLimitGB</code> \u8bbe\u7f6e\u7684\u8db3\u591f\u5927(\u9ed8\u8ba4 10G), \u907f\u514d\u56e0\u4e3a\u9ed8\u8ba4\u4f7f\u7528<code>producer_request_hold</code> \u6a21\u5f0f\u51fa\u73b0 block producer \u7684\u60c5\u51b5\uff1b\u5f53\u7136\u53ef\u4ee5\u6839\u636e\u5b9e\u9645\u4e1a\u52a1\u9009\u62e9\u5408\u9002\u7684 <code>backlogQuotaDefaultRetentionPolicy</code>\u3002</li>\n<li>\u6839\u636e\u5b9e\u9645\u4e1a\u52a1\u573a\u666f\u4e3b\u52a8\u9009\u62e9 backlog quota\u3002</li>\n<li>prometheus \u5185\u5982\u679c\u53d1\u73b0\u8bfb\u8017\u65f6\u4e3a\u7a7a\u60c5\u51b5\uff0c\u53ef\u80fd\u662f\u56e0\u4e3a\u76f4\u63a5\u8bfb\u53d6\u4e86\u7f13\u5b58\u6570\u636e\uff1b Pulsar \u5728\u8bfb\u53d6\u6d88\u606f\u65f6\u4f1a\u5148\u8bfb\u53d6 write cache, \u7136\u540e\u8bfb\u53d6 read cache \uff1b\u5982\u679c\u90fd\u6ca1\u6709\u547d\u4e2d, \u5219\u4f1a\u5728 RocksDB \u4e2d\u8bfb\u53d6\u6761\u76ee\u4f4d\u5b50\u540e\uff0c\u518d\u4ece\u65e5\u5fd7\u6587\u4ef6\u4e2d\u8bfb\u53d6\u8be5\u6761\u76ee\u3002</li>\n<li>\u5199\u5165\u6d88\u606f\u65f6, Pulsar \u4f1a\u540c\u6b65\u5199\u5165 journal \u548c write cache \uff1b write cache \u518d\u5f02\u6b65\u5199\u5165\u65e5\u5fd7\u6587\u4ef6\u548c RocksDB \uff1b \u6240\u4ee5\u6709\u8d44\u6e90\u7684\u8bdd\uff0c\u5efa\u8bae journal \u76d8\u4f7f\u7528 SSD\u3002</li>\n</ol>\n<h1>\u516d\u3001\u603b\u7ed3</h1>\n<p>\u73b0\u5728, \u4e2a\u63a8\u9488\u5bf9\u4f18\u5148\u7ea7\u4e2d\u95f4\u4ef6\u7684\u6539\u9020\u65b9\u6848\u5df2\u7ecf\u5728\u90e8\u5206\u73b0\u7f51\u4e1a\u52a1\u4e2d\u8bd5\u8fd0\u884c\uff0c\u5bf9\u4e8e Pulsar \u7684\u7a33\u5b9a\u6027\uff0c\u6211\u4eec\u8fd8\u5728\u6301\u7eed\u5173\u6ce8\u4e2d\u3002\n\u4f5c\u4e3a\u4e00\u4e2a 2016 \u5e74\u624d\u5f00\u6e90\u7684\u9879\u76ee\uff0cPulsar \u62e5\u6709\u975e\u5e38\u591a\u5438\u5f15\u4eba\u7684\u7279\u6027\uff0c\u4e5f\u5f25\u8865\u4e86\u5176\u4ed6\u7ade\u54c1\u7684\u77ed\u677f\uff0c\u4f8b\u5982\u8de8\u5730\u57df\u590d\u5236\u3001\u591a\u79df\u6237\u3001\u6269\u5c55\u6027\u3001\u8bfb\u5199\u9694\u79bb\u7b49\u3002\u5c3d\u7ba1\u5728\u4e1a\u5185\u4f7f\u7528\u5c1a\u4e0d\u5e7f\u6cdb, \u4f46\u4ece\u73b0\u6709\u7684\u7279\u6027\u6765\u8bf4, Pulsar \u8868\u73b0\u51fa\u4e86\u53d6\u4ee3 Kafka \u7684\u8d8b\u52bf\u3002\u5728\u4f7f\u7528 Pulsar \u8fc7\u7a0b\u4e2d\uff0c\u6211\u4eec\u4e5f\u9047\u5230\u4e86\u4e00\u4e9b\u95ee\u9898,  \u5728\u6b64\u7279\u522b\u611f\u8c22\u7fdf\u4f73\u548c\u90ed\u65af\u6770(\u4e24\u4f4d\u5747\u4e3a Stream Native \u7684\u6838\u5fc3\u5de5\u7a0b\u5e08\u3001\u5f00\u6e90\u9879\u76ee Apache Pulsar \u7684 PMC \u6210\u5458)\u7ed9\u6211\u4eec\u63d0\u4f9b\u7684\u652f\u6301\u548c\u5e2e\u52a9\u3002</p>\n<p><strong>\u53c2\u8003\u6587\u732e\uff1a</strong></p>\n<p>[1] \u6bd4\u62fc Kafka, \u5927\u6570\u636e\u5206\u6790\u65b0\u79c0 Pulsar \u5230\u5e95\u597d\u5728\u54ea( <a href=\"https://www.infoq.cn/article/1UaxFKWUhUKTY1t_5gPq\" rel=\"nofollow\">https://www.infoq.cn/article/1UaxFKWUhUKTY1t_5gPq</a>)</p>\n<p>[2] \u5f00\u6e90\u5b9e\u65f6\u6570\u636e\u5904\u7406\u7cfb\u7edf Pulsar\uff1a\u4e00\u5957\u641e\u5b9a Kafka+Flink+DB( <a href=\"https://juejin.im/post/5af414365188256717765441\" rel=\"nofollow\">https://juejin.im/post/5af414365188256717765441</a>)</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/qazwsxkevin", 
        "name": "qazwsxkevin", 
        "avatar": "https://cdn.v2ex.com/gravatar/bfefb99d6203d351791672a1d3fc936a?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/542915", 
      "title": "Apache 2.4.38 \u5728\u7f16\u8bd1\u914d\u7f6e\u53c2\u6570\u4e0a\uff0c\u5982\u4f55\u6307\u5b9a apache \u7684\u914d\u7f6e\u6587\u4ef6\u5b89\u7f6e\u5230/etc \u91cc\u9762\uff1f", 
      "id": "https://www.v2ex.com/t/542915", 
      "date_published": "2019-03-09T15:50:34+00:00", 
      "content_html": "<p>\u7cfb\u7edf\u662f Centos 6\uff0c\n\u6211\u662f\u5904\u5973\u5ea7\uff0c\u60f3\u628a apache \u7684 conf \u653e\u53bb /etc\n\u80fd\u4e0d\u80fd\u5728./configure \u7684\u65f6\u5019\u5c31\u628a\u8fd9\u4e2a\u4f4d\u7f6e\u6307\u5b9a\u4e86\uff1f  \u641c\u4e86\u4e00\u4e9b\u7f51\u9875\u8d44\u6599\uff0c\u90fd\u662f\u8fd9\u4e2a\u4eba\u6284\u90a3\u4e2a\u4eba\u7684\u5185\u5bb9\uff0c\u4ecb\u7ecd\u9759\u6001\u7f16\u8bd1\u548c\u52a8\u6001\u7f16\u8bd1\uff0c\u4f3c\u4e4e\u6ca1\u53d1\u73b0\u6709\u8fd9\u6837\u7684\u53c2\u6570\uff1f  \u5fc5\u987b\u5f97\u81ea\u5df1\u53bb\u6539 config.layout \u5185\u5bb9\uff1f\u8fd9\u4e2a\u7565\u9ebb\u70e6\u3002\u3002\u3002\n\u66fe\u7ecf\u89c1\u8fc7\u4e00\u4e9b\u7cfb\u7edf\uff0c\u8c8c\u4f3c\u662f apache \u7684 2.2.15 \u5427\uff0cconf \u6587\u4ef6\u662f\u653e\u5728 /etc/httpd/conf \u91cc\u7684\u3002\u3002\u3002\u3002</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/astome", 
        "name": "astome", 
        "avatar": "https://cdn.v2ex.com/avatar/c507/d02f/182410_large.png?m=1495594044"
      }, 
      "url": "https://www.v2ex.com/t/487327", 
      "title": "apache \u4e0b\u5982\u4f55\u5c06 xxx.com www.xxx.com https://xxx.com \u91cd\u5b9a\u5411 https://www.xxx.com \u7684", 
      "id": "https://www.v2ex.com/t/487327", 
      "date_published": "2018-09-08T03:22:10+00:00", 
      "content_html": "<p>apache \u4e0b\u5982\u4f55\u5c06 <a href=\"http://xxx.com\" rel=\"nofollow\">http://xxx.com</a> \uff0c<a href=\"http://www.xxx.com\" rel=\"nofollow\">http://www.xxx.com</a> \uff0c<a href=\"https://xxx.com\" rel=\"nofollow\">https://xxx.com</a> \u91cd\u5b9a\u5411 <a href=\"https://www.xxx.com\" rel=\"nofollow\">https://www.xxx.com</a> \u7684</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/kevin168", 
        "name": "kevin168", 
        "avatar": "https://cdn.v2ex.com/gravatar/1dbe4b687790ded894c5e43ebe875c9e?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/476314", 
      "date_modified": "2018-08-02T08:22:06+00:00", 
      "content_html": "<p>\u6700\u8fd1\u4f7f\u7528\u963f\u91cc\u4e91\u7684\u4e91\u670d\u52a1\u5668\u642d\u5efa\u4e86\u4e2a Wordpress \u7f51\u7ad9\uff0c\u7136\u540e\u5947\u8469\u7684\u662f\u5728\u6bcf\u5929\u534a\u591c\u4e24\u4e09\u70b9\uff0c\u90fd\u4f1a\u51fa\u73b0\u6570\u636e\u5e93\u8fde\u63a5\u4e2d\u65ad\uff0c\u7f51\u7ad9\u62a5\u9519\uff1a\u201c Error establising a database connection \u201d\uff0c\u67e5\u770b\u4e86\u4e0b\u670d\u52a1\u5668\u65e5\u5fd7\uff0c\u53d1\u73b0\u4e2d\u65ad\u7684\u65f6\u95f4\u70b9\u91cc\u662f\u91cd\u590d\u51fa\u73b0 OPTIONS \u8bbf\u95ee\uff0c\u793a\u4f8b\u5982\u4e0b\uff1a</p>\n<p>127.0.0.1 - - [02 /AUG/2018:16:00:05 +0800]  \"OPTIONS * HTTP/1.0\" 200 -</p>\n<p>127.0.0.1 - - [02 /AUG/2018:16:00:04 +0800]  \"OPTIONS * HTTP/1.0\" 200 -</p>\n<p>127.0.0.1 - - [02 /AUG/2018:16:00:03 +0800]  \"OPTIONS * HTTP/1.0\" 200 -</p>\n<p>127.0.0.1 - - [02 /AUG/2018:16:00:02 +0800]  \"OPTIONS * HTTP/1.0\" 200 -</p>\n<p>127.0.0.1 - - [02 /AUG/2018:16:00:01 +0800]  \"OPTIONS * HTTP/1.0\" 200 -</p>\n<p>\u4e4b\u540e\u52a0\u5927\u4e86 MaxSpareServers \u7684\u6570\u503c\uff08\u9ed8\u8ba4\u4e3a 10\uff0c\u5df2\u52a0\u5230 50 \uff09\uff0c\u8fd8\u662f\u8001\u6837\u5b50\uff0c\u6709\u5927\u795e\u9047\u5230\u7c7b\u4f3c\u95ee\u9898\u7684\u4e0d\uff1f\u8fd9\u8be5\u5982\u4f55\u89e3\u51b3\uff0c\u6c42\u6307\u6559\uff0c\u4e07\u5206\u611f\u8c22\uff01</p>\n", 
      "date_published": "2018-08-02T08:21:47+00:00", 
      "title": "Apache \u7684 Access Log \u4e2d\u8001\u662f\u51fa\u73b0 OPTIONS \u8bbf\u95ee\uff0c\u5bfc\u81f4\u6570\u636e\u5e93\u8fde\u63a5\u4e2d\u65ad\uff0c\u600e\u4e48\u5904\u7406\uff1f", 
      "id": "https://www.v2ex.com/t/476314"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/jookr", 
        "name": "jookr", 
        "avatar": "https://cdn.v2ex.com/avatar/ed9a/2cc7/76517_large.png?m=1577327983"
      }, 
      "url": "https://www.v2ex.com/t/476215", 
      "title": "\u5f88\u7075\u5f02\u7684 apache \u4f2a\u9759\u6001\u89c4\u5219\u5076\u5c14\u4f1a\u5931\u6548 \u5927\u5bb6\u9047\u5230\u8fc7\u5417\uff1f\u6c42\u89e3\u51b3\u65b9\u6cd5", 
      "id": "https://www.v2ex.com/t/476215", 
      "date_published": "2018-08-02T03:56:45+00:00", 
      "content_html": "<p>\u6839\u76ee\u5f55\u4e0b\u7684.htaccess\n\u5185\u5bb9</p>\n<pre><code>&lt;IfModule mod_rewrite.c&gt;\n  Options +FollowSymlinks -Multiviews\n  RewriteEngine On\n\n  RewriteBase /\n  RewriteCond %{REQUEST_FILENAME} !-d\n  RewriteCond %{REQUEST_FILENAME} !-f\n  RewriteRule ^(.*)$ /index.php?/$1 [QSA,PT,L]\n&lt;/IfModule&gt;\n</code></pre>\n<p>/abc/123.php \u662f\u771f\u5b9e\u5b58\u5728\u7684\u6587\u4ef6\uff0c\u5185\u5bb9\u662f\u4e0d\u63a5\u6536\u4f20\u53c2\uff0c\u4e5f\u6ca1\u6709\u8df3\u8f6c\u7684\uff0c\u4e5f\u5c31\u662f\u4e0d\u4f1a\u6536\u5230\u5916\u90e8\u5f71\u54cd\u3002\n\u6839\u636e\u4ee5\u4e0a\u89c4\u5219\uff0c\u6b64 URL \u662f\u4e0d\u8d70\u4f2a\u9759\u6001\u7684\uff0c\u5b9e\u9645\u6548\u679c\u4e5f\u786e\u5b9e\u5982\u6b64\u3002\n\u4f46\u662f\u4f1a\u5076\u5c14\u51fa\u73b0\u8fd9\u4e2a url \u6253\u5f00\u7684\u662f\u4f2a\u9759\u6001\u540e\u54cd\u5e94\u7684\u5185\u5bb9\n\u4e5f\u5c31\u662f\nRewriteCond %{REQUEST_FILENAME} !-f\n\u8fd9\u6761\u89c4\u5219\u5076\u5c14\u4f1a\u5931\u6548\uff0c\u7ee7\u7eed\u5339\u914d\u5230\u4e0b\u9762\nRewriteRule ^(.*)$ /index.php?/$1 [QSA,PT,L]\n\u8fd9\u6761\u89c4\u5219\u4e0a\u53bb\u4e86</p>\n<p>\u8bf7\u95ee\u6709\u7ecf\u9a8c\u7684\u5927\u4f6c\u8fd9\u4e2a\u95ee\u9898\u662f\u7531\u4e8e\u4ec0\u4e48\u800c\u5f15\u53d1\u7684\u5462\uff0c\u600e\u4e48\u89e3\u51b3\u8fd9\u4e2a\u95ee\u9898\u5462\uff1f</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/jhwangpin", 
        "name": "jhwangpin", 
        "avatar": "https://cdn.v2ex.com/gravatar/b023456753626fb03a539c791d141ff5?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/469211", 
      "title": "flume \u6293 TOMCAT \u65e5\u5fd7\u53d1 kafka\uff0c\u600e\u4e48\u6309\u65e5\u5fd7\u5185\u5bb9\u5206\u6bb5\u53d1\u9001\uff1f", 
      "id": "https://www.v2ex.com/t/469211", 
      "date_published": "2018-07-09T03:26:07+00:00", 
      "content_html": "<p>flume \u6293 TOMCAT \u65e5\u5fd7\u53d1 kafka\uff0c\u600e\u4e48\u6309\u65e5\u5fd7\u5185\u5bb9\u5206\u6bb5\u53d1\u9001\uff1f tomcat \u65e5\u5fd7\u91cc\u6709 exception \u8fd9\u79cd\u7684\uff0c\u597d\u51e0\u884c\uff0cflume \u9ed8\u8ba4\u6309\u884c\u4f5c\u4e3a\u4e00\u4e2a\u6570\u636e\u6d41\u53d1\u9001\uff0c\u540e\u671f\u5206\u6790\u548c\u67e5\u8be2\u4e0d\u65b9\u4fbf\uff0c\u600e\u4e48\u6837\u8bbe\u7f6e\u4ea7\u80fd\u5c06 exception \u6216\u8005\u591a\u884c\u7684\u65e5\u5fd7\u5f53\u505a\u4e00\u4e2a\u6d41\u6765\u53d1\u9001\u5462</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/frmongo", 
        "name": "frmongo", 
        "avatar": "https://cdn.v2ex.com/avatar/3a34/7013/227985_large.png?m=1513758048"
      }, 
      "url": "https://www.v2ex.com/t/467741", 
      "title": "ubuntu16.04 \u642d\u5efa wiki \u6c42\u52a9", 
      "id": "https://www.v2ex.com/t/467741", 
      "date_published": "2018-07-03T03:45:02+00:00", 
      "content_html": "<p>1.\u80cc\u666f\uff1a\n\u5c0f\u5f1f\u83dc\u9e1f\uff0c\u60f3\u5728\u642c\u74e6\u5de5 VPS \uff08 ubuntu16.04 \uff09\u4e0a\u642d\u5efa dokuwiki\uff0c\u4f46\u662f\u5728\u642d\u5efa\u73af\u5883\u65f6\u9047\u5230\u95ee\u9898\u3002</p>\n<p>2.\u5b89\u88c5\u73af\u5883\uff1a</p>\n<p>\u642c\u74e6\u5de5 VPS ubuntu16.04\napache 2.4.18\nphp5.6\n3.\u5177\u4f53\u95ee\u9898\napache2 \u5df2\u7ecf\u5b89\u88c5\u5b8c\u6210\uff0c\u6d4f\u89c8\u5668\u8f93\u5165 HostIp/ \u662f\u53ef\u4ee5\u770b\u5230 Apache2 Ubuntu Default Page \u7684\uff0c\u8bf4\u660e\u963f\u5e15\u5947\u5de5\u4f5c\u4e86\u3002\u7136\u540e\u65b0\u5efa\u8fd9\u4e2a\u6587\u4ef6 /var/www/html/test.php \u5185\u5bb9\u4e3a &lt;/?php    phpinfo();  /?&gt; \uff08\u53bb\u6389\u659c\u6760\uff09\n\u7406\u8bba\u4e0a\uff0c\u6d4f\u89c8\u5668\u6253\u5f00 HostIp/test.php \u53ef\u4ee5\u770b\u5230\u4e00\u4e2a\u5e26\u6709 php \u7248\u672c\u4fe1\u606f\u7684\u9875\u9762\uff08\u4e4b\u524d\u6211\u7684\u672c\u5730 ubuntu PC \u4e0a\u8fd9\u6837\u8bd5\u8fc7\u65f6\u53ef\u4ee5\u7684\uff09\u3002\n\u4f46\u662f\u5b9e\u9645\u4e0a\uff0c\u6d4f\u89c8\u5668\u770b\u5230\u7684\u662f 403 - Forbidden\u3002</p>\n<p>\u662f\u5426 VPS \u6709\u7279\u6b8a\u7684\u8bbe\u7f6e\uff1f\u8fd8\u662f\u8bf4\u8bbf\u95ee html \u6587\u4ef6\u5939\u4e0b\u7684\u5185\u5bb9\u9700\u8981\u5355\u72ec\u8bbe\u7f6e\u4ec0\u4e48\u6743\u9650\uff1f</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/tribute", 
        "name": "tribute", 
        "avatar": "https://cdn.v2ex.com/avatar/92ef/a155/320781_large.png?m=1721552846"
      }, 
      "url": "https://www.v2ex.com/t/462263", 
      "title": "\u5173\u4e8e apache \u591a\u57df\u540d\u591a\u7ad9\u70b9(http \u548c https \u90fd\u6709)\u5355\u670d\u52a1\u5668\u914d\u7f6e\u95ee\u9898", 
      "id": "https://www.v2ex.com/t/462263", 
      "date_published": "2018-06-11T12:08:09+00:00", 
      "content_html": "<p>\u7cfb\u7edf\u7248\u672c\nDistributor ID:\tCentOS\nDescription:\tCentOS Linux release 7.5.1804 (Core)\nRelease:\t7.5.1804\nCodename:\tCore</p>\n<p>httpd \u7248\u672c\nServer version: Apache/2.4.6 (CentOS)\nServer built:   Apr 20 2018 18:10:38</p>\n<p>\u6709\u6ca1\u6709\u53c2\u8003\u7684\u914d\u7f6e\u6587\u4ef6\uff0chttpd.conf \u548c ssl.conf \u4ee5\u53ca\u4e2a\u4eba\u7ad9\u70b9\u7684\u914d\u7f6e</p>\n<p>\u4e07\u5206\u611f\u8c22</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/pppguest3962", 
        "name": "pppguest3962", 
        "avatar": "https://cdn.v2ex.com/avatar/1437/cf7c/214909_large.png?m=1677912709"
      }, 
      "url": "https://www.v2ex.com/t/450734", 
      "title": "\u914d\u7f6e\u597d\u7684 CentOS httpd SSL \u670d\u52a1\uff0c\u4e3a\u4ec0\u4e48\u4e0d\u80fd\u7f51\u9875\u4e0d\u80fd\u81ea\u52a8\u91cd\u5b9a\u5411 https\uff1f", 
      "id": "https://www.v2ex.com/t/450734", 
      "date_published": "2018-04-28T09:45:27+00:00", 
      "content_html": "<p>\u8fd9\u4e2a\u4e3b\u673a\u5b8c\u6574\u662f https://192.168.89.41:8080</p>\n<p>\u6211\u60f3\u522b\u4eba\u5728\u8bbf\u95ee http://192.168.89.41:8080\uff0c\u81ea\u52a8\u8df3\u5f80 https://192.168.89.41:8080\n\u4f46\u6309\u76ee\u524d\u8c03\u8bd5\u7684\u914d\u7f6e\uff0c\u8bbf\u95ee http://192.168.89.41:8080\uff0c\u6d4f\u89c8\u5668\u4f1a\u663e\u793a\u51fa\u4e00\u4e2a html \u7684\u4ee3\u7801\u660e\u6587\uff1a</p>\n<pre><code>&lt;!DOCTYPE HTML PUBLIC \"-//IETF//DTD HTML 2.0//EN\"&gt;\n\n&lt;html&gt;&lt;head&gt;\n&lt;title&gt;400 Bad Request&lt;/title&gt;\n&lt;/head&gt;&lt;body&gt;\n&lt;h1&gt;Bad Request&lt;/h1&gt;\n&lt;p&gt;Your browser sent a request that this server could not understand.&lt;br /&gt;\nReason: You're speaking plain HTTP to an SSL-enabled server port.&lt;br /&gt;\nInstead use the HTTPS scheme to access this URL, please.&lt;br /&gt;\n&lt;blockquote&gt;Hint: &lt;a href=\"https://localhost:8080/\"&gt;&lt;b&gt;https://localhost:8080/&lt;/b&gt;&lt;/a&gt;&lt;/blockquote&gt;&lt;/p&gt;\n&lt;/body&gt;&lt;/html&gt;\n</code></pre>\n<p>\u4e0b\u9762\u662f\u8282\u9009 httpd.conf\uff0c\u914d\u7f6e\u6709\u591a\u4e2a VirtualHost\uff0c\u4f46\u662f\u53ea\u60f3 8080 \u8fd9\u4e2a\u4e3b\u673a\u542f\u7528 https\uff0c\nmod_ssl \u786e\u5b9a\u662f\u88c5\u597d\u7684\uff0c\u8bc1\u4e66\u5df2\u7ecf\u4f7f\u7528\u4e0a\u7684\u4e86\uff0c</p>\n<p>cat /etc/httpd/conf/httpd.conf</p>\n<pre><code>#8080,Test\n&lt;VirtualHost *:8080&gt; \n   SSLEngine on\n   SSLCertificateFile \"/etc/httpd/conf/ssl_key/server.crt\"\n   SSLCertificateKeyFile \"/etc/httpd/conf/ssl_key/server.key\"\n   SSLOptions StdEnvVars\n   SSLProtocol all -SSLv2 -SSLv3\n   SSLHonorCipherOrder on\n   SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW:!RC4:\n\n   DocumentRoot /opt/test1\n   DocumentRoot \"/opt/test1\"\n     &lt;Directory \"/opt/test1\"&gt;\n        Options Indexes FollowSymLinks\n        #Options FollowSymLinks\n        #Options Indexes \n        AllowOverride None\n        Order allow,deny\n        Allow from all\n     &lt;/Directory&gt;\n&lt;/VirtualHost&gt;\n\n#9090,Test2\n&lt;VirtualHost *:9090&gt;\n   DocumentRoot /opt/test2\n   DocumentRoot \"/opt/test2\"\n     &lt;Directory \"/opt/test2\"&gt;\n        Options Indexes FollowSymLinks\n        #Options FollowSymLinks\n        #Options Indexes\n        AllowOverride None\n        Order allow,deny\n        Allow from all\n     &lt;/Directory&gt;\n&lt;/VirtualHost&gt;\n</code></pre>\n<p>cat /opt/test1/.htaccess</p>\n<pre><code>RewriteEngine On\nRewriteCond %{HTTPS} !=on\nRewriteRule ^(.*) https://%{SERVER_NAME}/$1 [R,L]\n</code></pre>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/mgsparrow", 
        "name": "mgsparrow", 
        "avatar": "https://cdn.v2ex.com/avatar/075e/b647/241127_large.png?m=1500431005"
      }, 
      "url": "https://www.v2ex.com/t/445839", 
      "title": "\u8bf7\u6559\u4e00\u4e0b\u5728 Lightsail \u90e8\u7f72 Python Flask project \u65f6\u5019\u9047\u5230\u7684\u95ee\u9898", 
      "id": "https://www.v2ex.com/t/445839", 
      "date_published": "2018-04-11T02:10:15+00:00", 
      "content_html": "<p>\u5927\u5bb6\u597d\uff01\u6700\u8fd1\u5728 amazon \u7684 Lightsail \u4e2d\u5f00\u4e86\u4e2a 5 \u5200\u7684\u670d\u52a1\uff0c\u6253\u7b97\u5b66\u4e60\u4e00\u4e0b\u670d\u52a1\u5668\u7684\u642d\u5efa\u548c\u90e8\u7f72\uff0c\u56e0\u4e3a\u662f\u65b0\u624b\uff0c\u7ecf\u9a8c\u4e0d\u591f\u4e30\u5bcc\uff0c\u60f3\u5411\u5927\u5bb6\u8bf7\u6559\u4e00\u70b9 apache \u7684\u95ee\u9898\u3002</p>\n<p>\u9996\u5148\uff0c\u6211\u662f\u6309\u7167\u8fd9\u4e2a\u6559\u7a0b\u53bb\u914d\u7f6e\u6211\u7684 app\uff0c\u76ee\u5f55\u7ed3\u6784\u662f\u4e00\u6837\u7684\uff0c\u53ea\u662f\u76ee\u5f55\u7684\u540d\u5b57\u4e0d\u4e00\u6837\uff0c\u8fd9\u4e2a\u662f\u6559\u7a0b\u94fe\u63a5\uff1a\n<a href=\"https://www.digitalocean.com/community/tutorials/how-to-deploy-a-flask-application-on-an-ubuntu-vps\" rel=\"nofollow\">https://www.digitalocean.com/community/tutorials/how-to-deploy-a-flask-application-on-an-ubuntu-vps</a><br>\n\u7136\u540e\uff0c\u6211\u7684 /etc/apache2/sites-available/Item-Catalog.conf \u914d\u7f6e\u8bf7\u53c2\u8003\u6b64\u56fe\uff1a <a href=\"https://imgur.com/uaJ9IWm\" rel=\"nofollow\">https://imgur.com/uaJ9IWm</a><br>\n\u95ee\u9898\u662f\uff0c\u5f53\u6211 sudo a2ensite Item-Catalog.conf\uff0c\u518d\u7528 sudo service apache2 reload \u540e\uff0c\u4f1a\u63d0\u793a\u5982\u4e0b\uff1a</p>\n<h3>Job for apache2.service failed because the control process exited with error code. See \"systemctl status apache2.service\" and \"journalctl -xe\" for details.</h3>\n<p>\u6211\u89c9\u5f97\u5e94\u8be5\u662f\u6211\u7684\u914d\u7f6e\u5199\u5f97\u54ea\u91cc\u4e0d\u5bf9\u4e86\uff0c\u53ef\u4ee5\u6307\u70b9\u4e00\u4e8c\u5417\uff1f\u4e07\u5206\u611f\u8c22\uff01</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/rocklinsuv", 
        "name": "rocklinsuv", 
        "avatar": "https://cdn.v2ex.com/gravatar/8d3ce525c8bc32158b3756cae9504784?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/438506", 
      "title": "\u60f3\u95ee\u95ee\u5927\u795e\uff0c apache \u642d\u5efa\u7684\u53cd\u4ee3\uff0c\u5957\u4e86 CF \u4e4b\u540e\uff0c\u88ab\u53cd\u4ee3\u7684\u7f51\u7ad9\u51fa\u73b0 ERROR1000\uff0c\u5e94\u8be5\u5982\u4f55\u89e3\u51b3", 
      "id": "https://www.v2ex.com/t/438506", 
      "date_published": "2018-03-15T15:46:05+00:00", 
      "content_html": "<p>\u5982\u9898\uff0c\u53cd\u4ee3\u67d0\u9017\u6bd4\u7f51\u7ad9\uff08\u5c31\u662f\u6559\u4f60\u5982\u4f55\u4e0a\u7f51\u7684\u7f51\u7ad9\uff09\uff0c\u5728\u81ea\u5df1\u7684 VPS \u4e0a\u90e8\u7f72\u4e86 apache\uff0c\u6700\u8fd1\uff08 3.12 \u5f00\u59cb\uff09\u88ab\u4e00\u53ea\u65e0\u5f62\u7684\u624b\u5e72\u6270 443\uff0c\u5bfc\u81f4\u65e0\u6cd5\u6b63\u5e38\u5efa\u7acb HTTPS \u8fde\u63a5\u3002\u5957\u4e86 Cloudflare \u4e4b\u540e\uff0c\u8be5\u7f51\u7ad9\u63d0\u793a ERROR1000\uff0c\u53ef\u80fd\u662f\u56e0\u4e3a\u8be5\u7f51\u7ad9\u4e5f\u662f\u5957\u4e86 Cloudflare\u3002\u8bf7\u95ee\u8be5\u5982\u4f55\u914d\u7f6e apache \u4f7f\u7f51\u7ad9\u80fd\u591f\u6b63\u5e38\u8bbf\u95ee\uff1f\u662f\u4e0d\u662f\u8981\u8bbe\u4e00\u4e2a host \u5934\u4ec0\u4e48\u7684\uff0c\u5c0f\u767d\u8bf7\u6559\u5404\u4f4d\u5927\u795e\uff0c\u975e\u5e38\u611f\u8c22~\n\u8fd8\u60f3\u8bf7\u95ee\u5728 apache \u677f\u5757\u53d1\u8fd9\u4e2a\u5408\u4e0d\u5408\u9002\u5462\uff0c\u7b2c\u4e00\u6b21\u53d1\u5e16\uff0c\u8c22\u8c22\u3002</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/zcdll", 
        "name": "zcdll", 
        "avatar": "https://cdn.v2ex.com/gravatar/2963d1729b1d5c44eeab929899a4cfe1?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/408385", 
      "title": "Apache \u53ef\u4ee5\u901a\u8fc7\u8def\u7531\u914d\u7f6e\u8ba9\u4e00\u4e2a\u57df\u540d\u8bbf\u95ee\u4e24\u4e2a\u7cfb\u7edf\u5417\uff1f", 
      "id": "https://www.v2ex.com/t/408385", 
      "date_published": "2017-11-21T13:43:12+00:00", 
      "content_html": "<p>\u6211\u7684\u7cfb\u7edf\u662f\u57fa\u4e8e Laravel \u7684\uff0cPHP \u5f00\u53d1\u7684\u5fae\u4fe1 web \u7f51\u7ad9\uff0c\u7528\u7684 easywechat \u7684\u5305\u3002</p>\n<p>\u7136\u540e\uff0c\u73b0\u5728\u5df2\u7ecf\u53ef\u4ee5\u4f7f\u7528\u4e86\u3002</p>\n<p>\u73b0\u5728\u60f3\u914d\u7f6e\u4e00\u5957 <strong>\u6d4b\u8bd5\u73af\u5883</strong>\uff0c\u60f3\u7740\u80fd\u4e0d\u80fd\u5728\u540c\u4e00\u4e2a\u57df\u540d\u4e0b\uff0c\u518d\u642d\u5efa\u4e00\u5957 Laravel \u7684\u9879\u76ee\u5462\uff1f</p>\n<p>\u6211\u4eca\u5929\u4e0b\u5348\u8bd5\u4e86\u4e00\u4e0b\uff0c\u73b0\u5728\u901a\u8fc7</p>\n<p><code><a href=\"http://a.xyz.com\" rel=\"nofollow\">a.xyz.com</a> ==&gt; laravel_1</code></p>\n<p><code><a href=\"http://b.xyz.com\" rel=\"nofollow\">b.xyz.com</a> ==&gt; laravel_2</code></p>\n<p>Apache \u6dfb\u52a0\u4e24\u4e2a\u865a\u62df\u4e3b\u673a\uff0c\u8fd9\u4e48\u8bbf\u95ee\u6ca1\u6709\u95ee\u9898\uff0c\u901a\u8fc7\u4e24\u4e2a\u4e8c\u7ea7\u57df\u540d\uff0c\u8bbf\u95ee\u4e24\u5957 Laravel \u7684\u9879\u76ee\u3002</p>\n<p>\u4f46\u662f\u7531\u4e8e\u5fae\u4fe1\u7684\u9650\u5236\uff0c\u9700\u8981\u8ba4\u8bc1\uff0c\u6240\u4ee5\u53ea\u80fd\u586b\u5199\u4e00\u4e2a\u4e8c\u7ea7\u57df\u540d\uff0c\u73b0\u5728\u624b\u5934\u4e5f\u6ca1\u6709\u591a\u4f59\u7684\u8ba4\u8bc1\u516c\u4f17\u53f7\uff0c\u6240\u4ee5\u5c31\u60f3\u7740\uff0c\u80fd\u4e0d\u80fd\u5728\u540c\u4e00\u4e2a\u57df\u540d\u4e0b\uff0c\u518d\u642d\u5efa\u4e00\u5957 Laravel \u7684\u73af\u5883\uff1f</p>\n<p><code><a href=\"http://a.xyz.com\" rel=\"nofollow\">a.xyz.com</a> ==&gt; laravel_1</code></p>\n<p><code><a href=\"http://a.xyz.com/test\" rel=\"nofollow\">a.xyz.com/test</a> ==&gt; laravel_2</code></p>\n<p>\u50cf\u4e0a\u9762\u8fd9\u6837\u8d70\u3002</p>\n<p>\u4e0d\u5728 Laravel \u91cc\u9762\u914d\u7f6e routes/web.php \uff0c\u80fd\u4e0d\u80fd\u901a\u8fc7 Apache \u6765\u8f6c\u53d1\uff1f</p>\n<p>1\u3001\u5148\u4e0d\u8003\u8651\u5fae\u4fe1\u8ba4\u8bc1\u7684\u95ee\u9898\uff0c\u5355\u7eaf\u8bf4\u80fd\u4e0d\u80fd\u8fd9\u4e48\u642d\u5efa\u4e24\u5957\u7cfb\u7edf\uff1f\n2\u3001\u8003\u8651\u5fae\u4fe1\u8ba4\u8bc1\u7684\u60c5\u51b5\u4e0b\uff0c\u8fd8\u53ef\u4ee5\u884c\u5417\uff1f\u8fd8\u9700\u8981\u518d\u914d\u7f6e\u4e00\u4e0b\u5fae\u4fe1\u8ba4\u8bc1\u7684\u94fe\u63a5\u561b\uff1f</p>\n<p>\u8c22\u8c22\uff01</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/terence4444", 
        "name": "terence4444", 
        "avatar": "https://cdn.v2ex.com/avatar/dba8/402e/137948_large.png?m=1772302321"
      }, 
      "url": "https://www.v2ex.com/t/405715", 
      "title": "\u89e3\u51b3\u4e86\u4e00\u4e2a Apache \u62d2\u7edd\u670d\u52a1\u7684\u95ee\u9898\uff08(OS 64)\u6307\u5b9a\u7684\u7f51\u7edc\u540d\u4e0d\u518d\u53ef\u7528\u3002AH00341: winnt_accept: Asynchronous AcceptEx failed.\uff09", 
      "id": "https://www.v2ex.com/t/405715", 
      "date_published": "2017-11-12T06:34:03+00:00", 
      "content_html": "<h2><strong>\u4e8b\u4ef6\u8d77\u56e0</strong>\uff1a</h2>\n<p>\u7531\u4e8e\u4e0a\u6d77\u7535\u4fe1\u628a\u5bb6\u5ead\u5bbd\u5e26 443 \u7aef\u53e3\u5c01\u6389\uff0c\u5bfc\u81f4\u6211\u7684\u5fae\u4fe1\u516c\u4f17\u53f7\u201c\u6e38\u620f\u6253\u6298\u60c5\u62a5\u201d\uff08 yxdzqb \uff09\u65e0\u6cd5\u4ece\u5fae\u4fe1\u670d\u52a1\u5668\u76f4\u8fde\u3002\u4e8e\u662f\u6211\u7528 PHP \u5199\u4e86\u4e00\u4e2a\u7c7b\u4f3c\u53cd\u5411\u4ee3\u7406\u7684\u8f6c\u53d1\u5668\u5e03\u7f72\u5728\u5916\u670d\u52a1\u5668\u4e0a\uff0c\u7528\u9014\u662f\uff1a\u628a\u6765\u81ea 80/443 \u7684\u5fae\u4fe1\u670d\u52a1\u8f6c\u53d1\u7ed9\u5bb6\u5ead\u5bbd\u5e26\u7684\u5176\u5b83\u672a\u5c01\u7aef\u53e3\u4e0a\u3002</p>\n<p><strong>\u8fd9\u91cc\u505a\u4e2a\u5e7f\u544a</strong>\uff1a\u5fae\u4fe1\u516c\u4f17\u53f7 \u6e38\u620f\u6253\u6298\u60c5\u62a5 \u53ef\u4ee5\u67e5\u8be2 Steam/\u6749\u679c /Humble Bundle \u7684\u6253\u6298 /\u6700\u4f4e\u4ef7\u60c5\u51b5\uff0c\u8fd8\u6709\u4e00\u4e9b\u514d\u8d39\u9886\u53d6\u7684\u63a8\u9001\uff0c\u4e0d\u4f1a\u63a8\u5783\u573e\u4fe1\u606f\uff0c\u53ef\u4ee5\u81ea\u884c\u67e5\u770b\u63a8\u9001\u5386\u53f2\u3002</p>\n<h2><strong>\u6545\u969c\u73b0\u8c61</strong>\uff1a</h2>\n<p>\u4e00\u822c\u60c5\u51b5\u4e0b\u53ef\u4ee5\u6b63\u5e38\u4f7f\u7528\uff0c\u4f46\u8fc7\u4e86\u4e00\u6bb5\u65f6\u95f4\u4ee5\u540e\u5fae\u4fe1\u516c\u4f17\u53f7\u4f1a\u51fa\u73b0\u65e0\u54cd\u5e94\uff08\u7ecf\u5224\u65ad\u662f\u62d2\u7edd\u670d\u52a1\uff09\uff0c\u91cd\u542f Apache \u540e\u5373\u6062\u590d\u6b63\u5e38\u3002\u628a log \u8c03\u5230 Debug \u6a21\u5f0f\u4ee5\u540e\u53d1\u73b0\u5982\u4e0b\u53ef\u7591\u884c\uff1a</p>\n<pre><code>\u4e2d\u6587 Windows \u7cfb\u7edf\uff1a\n[mpm_winnt:warn] (OS 64)\u6307\u5b9a\u7684\u7f51\u7edc\u540d\u4e0d\u518d\u53ef\u7528\u3002\nAH00341: winnt_accept: Asynchronous AcceptEx failed.\n\n\u82f1\u6587 Windows \u7cfb\u7edf\uff1a\n(OS 64)The specified network name is no longer available.\nAH00341: winnt_accept: Asynchronous AcceptEx failed.\n</code></pre>\n<h2><strong>\u89e3\u51b3\u65b9\u6cd5</strong>\uff1a</h2>\n<p>\u5728 MPM \u91cc\u8c03\u8bd5\u4e86\u5f88\u4e45\u6ca1\u627e\u5230\u95ee\u9898\uff0c\u540e\u6765\u627e\u5230\u4e86\u8fd9\u4e2a\u8ba8\u8bba\uff1a\n<a href=\"https://communities.ca.com/thread/241692373\" rel=\"nofollow\">https://communities.ca.com/thread/241692373</a></p>\n<p>\u89e3\u51b3\u65b9\u6cd5\u662f\u5347\u7ea7\u5230 Apache 2.4.24 \u4ee5\u540e\u7684\u7248\u672c\uff0c\u5982\u679c\u6267\u884c\u7684\u662f 2.4.23 \u6216\u4ee5\u524d\u7684\u7248\u672c\uff0c\u4e5f\u53ef\u4ee5\u5728 httpd.conf \u4e2d\u6539\u5982\u4e0b\u884c\uff1a</p>\n<pre><code>AcceptFilter https connect\nAcceptFilter http connect\n</code></pre>\n<p>\u6211\u770b\u5230\u5f88\u591a\u4e2d\u6587\u7f51\u7ad9\uff08\u90fd\u662f\u6284\u7684\u540c\u4e00\u4e2a\u6765\u6e90\uff09\u8bf4\uff1a</p>\n<pre><code>\u52a0\u5165\uff1a\nWin32DisableAcceptEx\n\n\u6216\u8005\uff1a\nAcceptFilter https none\nAcceptFilter http none\n</code></pre>\n<p>\u5e76\u4e0d\u5b8c\u5168\u6b63\u786e\uff0cWin32DisableAcceptEx \u53ea\u9002\u7528\u4e8e Apache 2.2 \u800c AcceptFilter https none \u4e0d\u7528 Filter \u4f1a\u6709\u4e00\u4e9b\u5b89\u5168\u98ce\u9669\u3002</p>\n<p>\u5728\u8fd9\u91cc\u8bb0\u5f55\u4e00\u4e0b\u5206\u4eab\u7ed9\u5927\u5bb6\uff0c\u4e5f\u4ee5\u514d\u81ea\u5df1\u5fd8\u4e86\u3002</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/scxiaoxu", 
        "name": "scxiaoxu", 
        "avatar": "https://cdn.v2ex.com/gravatar/4edf659d3328fd14e7410ffd05de6cd9?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/400214", 
      "title": "\u7ebf\u4e0a\u6b63\u5f0f\u73af\u5883\u4e2d\u7684 apache \u600e\u4e48\u914d\u7f6e", 
      "id": "https://www.v2ex.com/t/400214", 
      "date_published": "2017-10-24T05:06:21+00:00", 
      "content_html": "<p>\u8bf7\u95ee\u7ebf\u4e0a\u73af\u5883\u4e2d\u7684 apache \u600e\u4e48\u914d\u7f6e\u554a\uff0c\u6bd4\u5982\u6211 <a href=\"http://a.com\" rel=\"nofollow\">a.com</a> \u8bbf\u95ee\u9ed8\u8ba4 www \u76ee\u5f55\uff0c\u6211\u60f3\u505a\u4e2a\u4e8c\u7ea7\u57df\u540d <a href=\"http://a.a.com\" rel=\"nofollow\">a.a.com</a> \u8bbf\u95ee a \u76ee\u5f55\uff0c\u73b0\u5728\u4e8c\u7ea7\u57df\u540d\u5df2\u7ecf\u89e3\u6790\u5230\u670d\u52a1\u5668\u4e86\uff0c\u6211 apache \u600e\u4e48\u914d\u7f6e\u554a\uff0c\u6c42\u6307\u70b9</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/MrMike", 
        "name": "MrMike", 
        "avatar": "https://cdn.v2ex.com/gravatar/3a9821ae5f3bb46a668b8268715f0ad7?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/400118", 
      "date_modified": "2017-10-24T01:42:17+00:00", 
      "content_html": "&lt;VirtualHost *:80&gt;\r<br />    ServerAdmin <a target=\"_blank\" href=\"mailto:demo@example.com\">demo@example.com</a>\r<br />    DocumentRoot /mnt/www/example\r<br />    ServerName <a target=\"_blank\" href=\"http://demo.example.com\" rel=\"nofollow\">demo.example.com</a>\r<br />    ServerAlias <a target=\"_blank\" href=\"http://demo.example.com\" rel=\"nofollow\">demo.example.com</a> *.demo.example.com\r<br />    ErrorLog logs/demo-example-error_log\r<br />    CustomLog logs/demo-example-access_log common\r<br />        &lt;Directory &quot;/mnt/www/example&quot;&gt;\r<br />        Options Indexes FollowSymLinks MultiViews ExecCGI\r<br />        AllowOverride All\r<br />        Require all granted\r<br />        &lt;/Directory&gt;\r<br />&lt;/VirtualHost&gt;\r<br />\r<br />\u8fd9\u662f\u4e00\u4e2a\u9879\u76ee\u7684\u57df\u540d\u914d\u7f6e\uff0c\u4f46\u662f\u8bbf\u95ee <a target=\"_blank\" href=\"http://login.demo.example.com\" rel=\"nofollow\">login.demo.example.com</a> \u8fd9\u6837\u4e09\u7ea7\u57df\u540d\u65f6\uff0c\u5168\u90e8\u8df3\u8f6c\u5230\u4e86 apche \u6839\u76ee\u5f55\u53bb\u4e86\u3002\u540c\u6837\u7684\u914d\u7f6e\uff0c\u5728\u53e6\u5916\u4e00\u4e2a\u9879\u76ee\u91cc\uff0c \u53ea\u662f\u4fee\u6539\u4e86\u4e0b\u4e8c\u7ea7\u57df\u540d\uff0c\u4e09\u7ea7\u57df\u540d\u8df3\u8f6c\u90fd\u6b63\u5e38\u3002\r<br />\u8bf7\u6559\u4e0b\uff0c\u8fd8\u6709\u54ea\u4e9b\u9700\u8981\u914d\u7f6e\uff1f", 
      "date_published": "2017-10-24T01:42:09+00:00", 
      "title": "\u8bf7\u6559\u4e00\u4e2a apache \u865a\u62df\u4e3b\u673a\u914d\u7f6e\u7684\u95ee\u9898", 
      "id": "https://www.v2ex.com/t/400118"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/chinaglwo", 
        "name": "chinaglwo", 
        "avatar": "https://cdn.v2ex.com/avatar/c8bd/2554/96069_large.png?m=1511488762"
      }, 
      "url": "https://www.v2ex.com/t/392581", 
      "date_modified": "2017-09-21T08:14:24+00:00", 
      "content_html": "<p>apache 2.4.16 + PHP 5.5.29 \u4f7f\u7528 fcgi \u65b9\u5f0f\u8dd1 wordpress\uff0c\u60f3\u7528.htaccess \u9650\u5236 wp-login.php \u662f\u4e0d\u662f\u5c31\u4e0d\u7ba1\u7528\u4e86\uff1f</p>\n<p>httpd.conf \u91cc\u9762\u7684\u914d\u7f6e\u662f\n&lt;VirtualHost <em>:80&gt;\nDocumentRoot /www/www/\nProxyPassMatch ^/(.</em>.php)$ fcgi://127.0.0.1:9000/www/www/$1\nDirectoryIndex index.html index.php\n&lt;/virtualhost&gt;</p>\n<p>\u6bd4\u5982\u5728.htaccess \u4e2d\u5199\u5165\n&lt;Files \"wp-login.php\"&gt;\nRequire all denied\n&lt;/files&gt;</p>\n<p>\u53d1\u73b0\u8fd8\u662f\u53ef\u4ee5\u8bbf\u95ee\u7684\uff0c\u662f\u4e0d\u662f\u56e0\u4e3a php \u8bf7\u6c42\u4ee5\u53ca\u88ab\u8f6c\u53d1\u5230\u540e\u7aef fcgi \u8fdb\u7a0b\u4e86\uff1f \u90a3\u8981\u600e\u4e48\u5f04\u5462</p>\n", 
      "date_published": "2017-09-21T08:12:24+00:00", 
      "title": "apache 2.4.16 + PHP 5.5.29 \u4f7f\u7528 fcgi \u65b9\u5f0f\u8dd1 wordpress\uff0c\u60f3\u7528.htaccess \u9650\u5236 wp-login. PHP \u662f\u4e0d\u662f\u5c31\u4e0d\u7ba1\u7528\u4e86\uff1f", 
      "id": "https://www.v2ex.com/t/392581"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/zzw1998", 
        "name": "zzw1998", 
        "avatar": "https://cdn.v2ex.com/avatar/09c0/1c09/221956_large.png?m=1728016351"
      }, 
      "url": "https://www.v2ex.com/t/388181", 
      "title": "\u5982\u4f55\u5229\u7528 Apache rewrite \u9690\u6027\u8df3\u8f6c", 
      "id": "https://www.v2ex.com/t/388181", 
      "date_published": "2017-09-04T15:00:55+00:00", 
      "content_html": "<p>\u9875\u9762\u5730\u5740\u662f <a href=\"http://abc.com/xxx.php\" rel=\"nofollow\">abc.com/xxx.php</a> \uff0c\u60f3\u8ba9\u8bbf\u95ee <a href=\"http://xxx.abc.com\" rel=\"nofollow\">xxx.abc.com</a> \u7b49\u6548\u4e8e\u8bbf\u95ee <a href=\"http://abc.com/xxx.php\" rel=\"nofollow\">abc.com/xxx.php</a> \uff0c\u5982\u4f55\u624d\u80fd\u505a\u5230\uff1f\u5982\u679c rewrite \u4e0d\u53ef\u4ee5\uff0c\u90a3\u4e48\u5229\u7528 php \u8be5\u5982\u4f55\u5199\uff0c\u6216\u8005\u8fd8\u6709\u6ca1\u6709\u5176\u4ed6\u529e\u6cd5</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/xiaoyanbot", 
        "name": "xiaoyanbot", 
        "avatar": "https://cdn.v2ex.com/avatar/1302/075b/224240_large.png?m=1654130826"
      }, 
      "url": "https://www.v2ex.com/t/387233", 
      "title": "\u8bf7\u6559 Apache \u4f2a\u9759\u6001\u89c4\u5219\u7684 2 \u6761\u89c4\u5219 \u7684\u8bf7\u6559", 
      "id": "https://www.v2ex.com/t/387233", 
      "date_published": "2017-08-31T09:25:44+00:00", 
      "content_html": "<p>\u7b2c\u4e00\u6761\u95ee\u9898\uff1a</p>\n<pre><code>Options +FollowSymlinks -Multiviews\n\nFollowSymlinks \u4f1a\u5f71\u54cd\u6027\u80fd\u5417\uff1f \u6bcf\u6b21\u90fd\u68c0\u67e5 \u7b26\u53f7\u94fe\u63a5\n\nMultiviews \u5565\u610f\u601d\uff1f\n</code></pre>\n<p>\u7b2c\u4e8c\u6761\u95ee\u9898\uff1a</p>\n<pre><code>  RewriteRule ^(.*)$ index.php [L,E=PATH_INFO:$1]\n</code></pre>\n<p>E=PATH_INFO:$1    \u8fd9\u4e2a\u5565\u610f\u601d\uff1f</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/apache2error", 
        "name": "apache2error", 
        "avatar": "https://cdn.v2ex.com/avatar/ebce/d317/247805_large.png?m=1502335476"
      }, 
      "url": "https://www.v2ex.com/t/381875", 
      "title": "apache2.4.10 configured -- resuming normal operations", 
      "id": "https://www.v2ex.com/t/381875", 
      "date_published": "2017-08-10T03:25:14+00:00", 
      "content_html": "\u4eca\u5929\u4e70\u4e86\u963f\u91cc\u4e91\u7684\u670d\u52a1\u5668 debian.\r<br />\u5b89\u88c5\u4e86\u7528\u547d\u4ee4\u5b89\u88c5\u4e86 apache2\r<br />\u53d1\u73b0\u65e0\u6cd5\u901a\u8fc7 ip \u8bbf\u95ee apache \u5b89\u88c5\u6210\u529f\u9875\u9762\r<br />\u770b\u65e5\u5fd7\u51fa\u73b0\r<br />apache2.4.10 configured -- resuming normal operations"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/angelsky11", 
        "name": "angelsky11", 
        "avatar": "https://cdn.v2ex.com/gravatar/78aada321c08c13d552e0ee63788a982?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/373561", 
      "title": "\u8bf7\u95ee\u5982\u4f55\u8bbe\u7f6e\u6587\u4ef6\u5939\u6743\u9650\u4f7f vsftpd \u548c apache \u76ee\u5f55\u5e76\u5b58", 
      "id": "https://www.v2ex.com/t/373561", 
      "date_published": "2017-07-06T11:20:48+00:00", 
      "content_html": "<p>\u5728\u81ea\u5df1\u7684 ubuntu vps \u91cc\u7ed9\u670b\u53cb\u5f00\u4e86\u4e2a ftp</p>\n<p>ftp \u6839\u76ee\u5f55\u8bbe\u7f6e\u4e3a /var/www/username<br>\n\u6743\u9650\u7ed9\u4e86  username:www-data</p>\n<p>\u7136\u540e\u5728 apache \u91cc\u65b0\u5efa\u4e86\u7ad9\u70b9\uff0c\u7ad9\u70b9\u6839\u76ee\u5f55\u4e5f\u8bbe\u5b9a\u4e3a /var/www/username\n\u7136\u540e\u6574\u4e2a\u76ee\u5f55\u53ca\u4e0b\u5c5e\u7ed9\u4e86 755 \u7684\u6743\u9650</p>\n<p>\u5b89\u88c5 wordpress\uff0c\u53d1\u73b0\u6ca1\u6709\u5199\u5165\u7684\u6743\u9650\uff0c\u5728\u7ad9\u70b9\u91cc\u65e0\u6cd5\u5199\u5165\u6743\u9650\uff0c\u63d0\u793a\u9700\u8981\u673a\u5668\u7684 ftp \u8d26\u53f7\u548c\u5bc6\u7801</p>\n<p>\u4e4b\u524d\u81ea\u5df1\u7684\u7ad9\uff0c\u56e0\u4e3a\u4e0d\u9700\u8981\u7ed9\u81ea\u5df1\u5f00 ftp \u8d26\u53f7\uff0c\u4ece\u6765\u90fd\u662f\u7528 root \u8fde\u63a5\u673a\u5668\u7684\uff0c\u6240\u4ee5\u81ea\u5df1\u7ad9\u7684\u76ee\u5f55\u90fd\u7ed9\u4e86 www-data:www-data</p>\n<p>\u5e0c\u671b\u61c2\u884c\u7684\u5927\u4f6c\u4eec\u6307\u5f15\u6307\u5f15</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/fengtalk", 
        "name": "fengtalk", 
        "avatar": "https://cdn.v2ex.com/avatar/b319/a27a/108049_large.png?m=1581768159"
      }, 
      "url": "https://www.v2ex.com/t/364818", 
      "title": "\u6df1\u591c\u8bf7\u6559\u4e00\u4e2a Apache \u7684 Rewrite \u89c4\u5219", 
      "id": "https://www.v2ex.com/t/364818", 
      "date_published": "2017-05-30T18:22:58+00:00", 
      "content_html": "\u8f93\u5165 domain.com/py?cid=\r<br />\u8bbf\u95ee\u7684\u8fd8\u662f domain.com/py?cid=\r<br />\u8f93\u5165 domain.com/py?cid=1234(\u4efb\u4e00\u6570\u5b57)\r<br />\u8bbf\u95ee example.com/py?cid=1234 \u4efb\u4e00\u6570\u5b57)\r<br />\r<br />\u6298\u817e\u4e86\u4e24\u4e2a\u534a\u5c0f\u65f6\u4ee5\u4e0a\uff0c\u5404\u79cd\u67e5\u8d44\u6599\uff0c\u65e0\u679c\u3002\u7279\u6765\u8bf7\u6559\uff0c\u8c22\u8c22\uff01"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/vipper", 
        "name": "vipper", 
        "avatar": "https://cdn.v2ex.com/avatar/1f42/b0a2/219839_large.png?m=1500888813"
      }, 
      "url": "https://www.v2ex.com/t/355243", 
      "title": "Apache \u914d\u7f6e Rewrite \u91cd\u5199\u89c4\u5219\u95ee\u9898", 
      "id": "https://www.v2ex.com/t/355243", 
      "date_published": "2017-04-16T11:21:27+00:00", 
      "content_html": "<p>\u73b0\u6709\u4e00\u4e2a\u9700\u6c42\uff0c\u5e0c\u671b\u901a\u8fc7\u914d\u7f6e apache \u7684 rewrite \u89c4\u5219\u6765\u5b9e\u73b0\u53ea\u5141\u8bb8 IE \u6765\u8bbf\u95ee\u7f51\u7ad9\n\u7f51\u4e0a\u67e5\u627e\u8d44\u6599\nRewriteEngine on\nRewriteCond %{HTTP_USER_AGENT} ^MSIE [NC,OR]\n\u53ef\u4ee5\u901a\u8fc7\u8fd9\u4e2a\u89c4\u5219\u8bbe\u7f6e\u6765\u7981\u6b62 IE \u6d4f\u89c8\u5668\u8bbf\u95ee\uff0c\u8fd9\u4e2a\u548c\u9700\u6c42\u76f8\u53cd\u3002\n\u5176\u5b9e\u4e5f\u60f3\u8fc7\u901a\u8fc7\u8bbe\u7f6e\u5f88\u591a\u6d4f\u89c8\u5668\u7684\u89c4\u5219\u6765\u53ea\u5141\u8bb8 IE \u8bbf\u95ee\uff0c\u53ef\u662f\u76ee\u524d\u5e02\u9762\u4e0a\u6709\u592a\u591a\u7684\u6d4f\u89c8\u5668\u4e86\uff0c\u6015\u7981\u6b62\u4e0d\u5168\u9762\uff0c\u8fd8\u6709\u5c31\u662f\u8d39\u65f6</p>\n<p>\u767e\u5ea6\u67e5\u8be2\u4e86 Rewrite \u91cd\u5199\u89c4\u5219\uff0c\u6ca1\u6709\u53d1\u73b0\u6709\u6709\u5173\u5b9e\u73b0\u9700\u6c42\u7684\u5185\u5bb9\uff0c\u7279\u6765 V \u7ad9\u8be2\u95ee\u5404\u4f4d\u5927\u725b</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/toslink", 
        "name": "toslink", 
        "avatar": "https://cdn.v2ex.com/gravatar/55799ab13f714dd9297d0ffd96dc2468?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/352646", 
      "title": "\u5927\u5bb6\u597d\uff0c\u8bf7\u95ee\u5982\u4f55\u67e5\u770b Apache \u5411\u522b\u7684\u670d\u52a1\u5668\u53d1\u9001\u4e86\u4ec0\u4e48 URL \u51fa\u53bb\u5462", 
      "id": "https://www.v2ex.com/t/352646", 
      "date_published": "2017-04-05T06:17:21+00:00", 
      "content_html": "<p>\u662f\u8fd9\u6837\u7684\uff0c\u6211\u7ebd\u7ea6\u7684\u670d\u52a1\u5668\u88ab\u9ed1\u5ba2\u62ff\u4e0b\u4e86\uff0c\u7136\u540e\u7559\u4e86\u540e\u95e8\uff0c\u6bcf\u6b21\u90fd\u4fee\u6539\u7ba1\u7406\u5458\u5bc6\u7801\u7684\u65f6\u5019\u90fd\u6ca1\u7528\uff0c\u6211\u6000\u7591\u662f\u4ed6\u7684\u540e\u95e8\u5077\u5077\u628a\u6211\u4fee\u6539\u540e\u7684\u5bc6\u7801\u53d1\u9001\u5230\u4ed6\u7684\u670d\u52a1\u5668\u90a3\u91cc\u53bb\u4e86\uff0c\u4f46\u662f\u6211\u4e0d\u77e5\u9053\u662f\u901a\u8fc7 get \u7684\u65b9\u5f0f\u8fd8\u662f post \u7684\u65b9\u5f0f\u53d1\u9001\u51fa\u53bb\u7684\uff0c\u6240\u4ee5\u6211\u60f3\u95ee\u95ee\u5927\u5bb6\u5728 Apache \u7684\u54ea\u4e2a\u5730\u65b9\u53ef\u4ee5\u770b\u5230\u6211\u7684 vps \u5077\u5077\u5916\u53d1\u4e86\u54ea\u4e9b\u4e1c\u897f\u51fa\u53bb\u3002</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/hiboshi", 
        "name": "hiboshi", 
        "avatar": "https://cdn.v2ex.com/avatar/2c9b/5123/86177_large.png?m=1657382791"
      }, 
      "url": "https://www.v2ex.com/t/350223", 
      "title": "\u8bf7\u6559\u4e00\u4e2a\u91cd\u5199\u89c4\u5219\u95ee\u9898", 
      "id": "https://www.v2ex.com/t/350223", 
      "date_published": "2017-03-25T04:25:35+00:00", 
      "content_html": "<pre><code>RewriteEngine on\nRewriteCond %{REQUEST_URI} !^(/aaa/bbb)$ [NC]\nRewriteCond %{SERVER_PORT} =80  [NC]\nRewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [NC,L,R=301]\nRewriteRule !\\.(dfk|tsv|pdf|PDF|js|ico|gif|GIF|jpg|JPG|jpeg|JPEG|png|PNG|css|src|csv|txt|TXT|xml|XML|xls|XLS|php|PHP|json|ttf|woff|woff2|svg|swf|eot|htc|lic|mp4)$ index.php [NC,L]\n</code></pre>\n<p>\u5f53\u6211\u4f7f\u7528 80 \u7aef\u53e3\u5e76\u4e14 URI \u4e0d\u4e3a /aaa/bbb \u7684\u65f6\u5019 \u4e0d\u8df3\u8f6c https</p>\n<p>\u8fd9\u6837\u5199\u600e\u4e48\u76f4\u63a5\u8df3\u5230 <a href=\"https://www.test.com/index.php\" rel=\"nofollow\">https://www.test.com/index.php</a> \u4e0a\u9762\u4e86\uff1f</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/Totato5749", 
        "name": "Totato5749", 
        "avatar": "https://cdn.v2ex.com/gravatar/20c104c6a89dcfe0d76f9f8860fc41da?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/343777", 
      "title": "\u6c42\u6559\u4e00\u4e2a htaccess \u5199\u6cd5", 
      "id": "https://www.v2ex.com/t/343777", 
      "date_published": "2017-02-28T04:06:44+00:00", 
      "content_html": "<p>\u60f3\u8981\u5b9e\u73b0\u7684\u9700\u6c42\uff1a</p>\n<ol>\n<li><a href=\"http://www.example.com\" rel=\"nofollow\">http://www.example.com</a></li>\n<li><a href=\"http://example.com\" rel=\"nofollow\">http://example.com</a></li>\n<li><a href=\"https://www.example.com\" rel=\"nofollow\">https://www.example.com</a></li>\n<li><a href=\"https://example.com\" rel=\"nofollow\">https://example.com</a>\n\u4ee5\u4e0a\u56db\u4e2a\u94fe\u63a5\u5747\u8df3\u8f6c\u5230 <a href=\"https://example.com\" rel=\"nofollow\">https://example.com</a> \uff08 http \u4e0e https \u533a\u522b\uff0c\u6709\u65e0 www \u533a\u522b\uff09</li>\n</ol>\n<p>\u6c42\u5927\u795e\u6307\u70b9</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/cloudL", 
        "name": "cloudL", 
        "avatar": "https://cdn.v2ex.com/avatar/74b7/c28d/215021_large.png?m=1487058482"
      }, 
      "url": "https://www.v2ex.com/t/340664", 
      "title": "Apache rewrite \u90e8\u5206\u7ec6\u8282", 
      "id": "https://www.v2ex.com/t/340664", 
      "date_published": "2017-02-15T07:48:48+00:00", 
      "content_html": "<p>\u591a\u4e2a.htaccess \u5339\u914d\u7684\u4f18\u5148\u7ea7</p>\n<p>\u7f51\u7ad9\u6839\u8def\u5f84\u4e0b\u6709\u4e00\u4e2a.htaccess \uff0c\u6839\u76ee\u5f55\u4e0b\u7684\u6587\u4ef6\u5939 test \u4e2d\u4e5f\u6709\u4e00\u4e2a.htaccess \uff0c\u90a3\u4e48\uff0c\u8bbf\u95ee http://localhost/test/xyz \u4f1a\u6709\u4ec0\u4e48\u7ed3\u679c\u5462\uff08 test \u4e0b\u4e0d\u5b58\u5728\u540d\u4e3a xyz \u7684\u6587\u4ef6\uff09\uff0c\u6216\u8005\u8bf4\u5982\u679c\u4e24\u4e2a.htaccess \u90fd\u4f1a\u5bf9\u9519\u8bef\u7684\u8bbf\u95ee\u8fdb\u884c\u5904\u7406\uff0c\u8c01\u7684\u4f18\u5148\u7ea7\u66f4\u9ad8\uff1f</p>\n<p>\u6839\u8def\u5f84\u4e0b\uff1a</p>\n<p>RewriteEngine On</p>\n<p>RewriteCond %{REQUEST_FILENAME} -s [OR]</p>\n<p>RewriteCond %{REQUEST_FILENAME} -l [OR]</p>\n<p>RewriteCond %{REQUEST_FILENAME} -d</p>\n<p>RewriteRule ^.*$ - [L]</p>\n<p>RewriteRule ^.*$  <a href=\"https://baidu.com\" rel=\"nofollow\">https://baidu.com</a> [R=301,L]</p>\n<p>test \u8def\u5f84\u4e0b\uff1a</p>\n<p>RewriteEngine On</p>\n<p>RewriteCond %{REQUEST_FILENAME} -s [OR]</p>\n<p>RewriteCond %{REQUEST_FILENAME} -l [OR]</p>\n<p>RewriteCond %{REQUEST_FILENAME} -d</p>\n<p>RewriteRule ^.*$ - [L]</p>\n<p>RewriteRule ^.*$  <a href=\"https://bing.com\" rel=\"nofollow\">https://bing.com</a> [R=301,L]</p>\n<p>\u6d4b\u8bd5\u7ed3\u679c\u662f test \u8def\u5f84\u4e0b\u7684.htaccess \u8d77\u6548\u4e86\uff0c\u4e5f\u5c31\u662f\u5728\u6d4f\u89c8\u5668\u4e0a\u8bbf\u95ee http://localhost/test/xyz \u5b9e\u9645\u4e0a\u8df3\u8f6c\u5230\u4e86 Bing \u3002\u5f53\u6211\u628a test \u4e0b\u7684.htaccess \u79fb\u9664\u540e\u5219\u4f1a\u8df3\u8f6c\u5230 Baidu.</p>\n<p>\u7f57\u5217\u4e00\u4e9b\u7ec6\u8282</p>\n<p>$N \u5339\u914d\u7684\u662f RewriteRule \u4e2d\u6b63\u5219\u5339\u914d\u7684\u5185\u5bb9(RewriteRule backreferences)\uff0c\u800c%N \u5339\u914d\u7684\u662f RewriteCond \u4e2d\u6b63\u5219\u5339\u914d\u7684\u5185\u5bb9(RewriteCond backreferences)\uff0c\u800c\\N \u5219\u662f\u6b63\u5219\u8868\u8fbe\u5f0f\u4e2d\u539f\u751f\u7684\u53cd\u5411\u5f15\u7528\n\u6709\u65f6\u5019\u51fa\u73b0\u7684::\u5e76\u4e0d\u662f\u7279\u6b8a\u7684\u7b26\u53f7\uff0c\u53ea\u662f\u65b9\u4fbf\u4f7f\u7528\u7684\u5206\u9694\u7b26\u800c\u5df2\uff0c\u559c\u6b22\u7684\u8bdd\u53ef\u4ee5\u7528##\u7b49\u66ff\u4ee3 12\nRewriteCond TestString CondPattern \u4e2d\uff0c TestString \u53ef\u4ee5\u662f\u4ee5\u4e0b\u5185\u5bb9\u6784\u6210\u7684:</p>\n<p>RewriteRule backreferences</p>\n<p>RewriteCond backreferences</p>\n<p>RewriteMap expansions 3</p>\n<p>Server-Variables 4</p>\n<p>RewriteRule Pattern Substitution [flags]\u4e2d\uff0c pattern \u5339\u914d\u7684\u662f\u4ec0\u4e48\uff1f\u5c31\u6211\u7684\u7406\u89e3\u6765\u8bf4\uff0c\u5982\u679c\u8bbf\u95ee\u7684\u94fe\u63a5\u662f http://localhost:80/test/hello/hahahaha?x=100 \uff0c</p>\n<p>\u5982\u679c\u5b83\u7531\u7f51\u7ad9\u6839\u76ee\u5f55\u4e0b\u7684.htaccess \u6765\u5904\u7406\uff0c\u5b83\u5339\u914d\u7684\u5185\u5bb9\u5c31\u662f test/hello/hahahaha;\n\u5982\u679c\u5b83\u7531\u6839\u76ee\u5f55 /test/.htaccess \u6765\u5904\u7406\uff0c\u5b83\u5339\u914d\u7684\u5185\u5bb9\u5c31\u662f hello/hahahaha</p>\n<p>What is matched?5\nIn VirtualHost context, The Pattern will initially be matched against the part of the URL after the hostname and port, and before the query string (e.g. \u201c/app1/index.html \u201d).\nIn Directory and htaccess context, the Pattern will initially be matched against the filesystem path, after removing the prefix that led the server to the current RewriteRule (e.g. \u201c app1/index.html \u201d or \u201c index.html \u201d depending on where the directives are defined).\nIf you wish to match against the hostname, port, or query string, use a RewriteCond with the %{HTTP_HOST}, %{SERVER_PORT}, or %{QUERY_STRING} variables respectively.\nIn any case, remember that regular expressions are substring matches. That is, you don \u2019 t need the regex to describe the entire string, just the part that you wish to match. Thus, using a regex of . is often sufficient rather than .*, and the regex abc is not the same as ^abc$.</p>\n<p>\u4ee5\u540e\u518d\u8865\u5145\u3002\u3002\u3002\u3002\u3002</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/enenaaa", 
        "name": "enenaaa", 
        "avatar": "https://cdn.v2ex.com/avatar/7151/5aec/195724_large.png?m=1484707885"
      }, 
      "url": "https://www.v2ex.com/t/317599", 
      "date_modified": "2016-11-02T19:02:04+00:00", 
      "content_html": "\u4ee5\u524d\u4e00\u76f4\u90fd\u5728 windows \u4e0b\u73a9 iis \uff0c \u8fd9\u6b21\u4e3a\u4e86\u7701 20 \u5757\u94b1\u8111\u4e00\u62bd\u6362\u6210 centos, \u7ed3\u679c\u771f\u9047\u4e0a\u4e86\u9ebb\u70e6\u3002\r<br />Rewrite \u6ca1\u6253\u5f00\u4e4b\u524d\u4e00\u5207\u6b63\u5e38\uff0c \u6253\u5f00\u540e\u56fe\u7247\u548c css,js \u7b49\u9759\u6001\u6587\u4ef6\u51fa\u73b0 403 \u9519\u8bef\u3002\r<br />\r<br />client denied by server configuration: /var/www/html/application/views/common.css\r<br />\r<br />.htaccess \u6587\u4ef6\u914d\u7f6e\u5982\u4e0b\r<br />\r<br />&lt;IfModule mod_rewrite.c&gt;\r<br />\r<br />\tRewriteEngine On\r<br />\r<br />\tRewriteBase /\r<br />\r<br />\tRewriteCond %{REQUEST_FILENAME} !-d\r<br />\r<br />\tRewriteCond %{REQUEST_FILENAME} !-f\r<br />\r<br />\tRewriteRule ^(.*)$ index.php/$1 [L]\r<br />\r<br />&lt;/IfModule&gt;\r<br />\r<br />conf \u6587\u4ef6\u76f8\u5173\u914d\u7f6e\u5982\u4e0b\r<br />\r<br />&lt;Directory &quot;/var/www/html&quot;&gt;\r<br />\r<br />    Options Indexes FollowSymLinks\r<br />\r<br />    AllowOverride All\r<br />\r<br />    Require all granted\r<br />&lt;/Directory&gt;\r<br />\r<br />\u7248\u672c\u662f\u963f\u91cc\u4e91\u4e0a\u7684 httpd 2.4.6, \u6446\u5f04\u534a\u5929\uff0c \u5b8c\u5168\u4e0d\u77e5\u9053\u4e3a\u5565\uff0c \u644a\u624b\u3002", 
      "date_published": "2016-11-02T18:56:42+00:00", 
      "title": "\u83dc\u9e21\u6c42\u52a9\uff0c apache \u5f00\u542f\u4e86 Rewrite \u540e\uff0c \u9759\u6001\u6587\u4ef6\u5c31 403 \u4e86", 
      "id": "https://www.v2ex.com/t/317599"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/nonozone", 
        "name": "nonozone", 
        "avatar": "https://cdn.v2ex.com/avatar/d81f/9c1b/345_large.png?m=1775997596"
      }, 
      "url": "https://www.v2ex.com/t/315344", 
      "title": "\u8bf7\u6559\u4e00\u4e2a.htaccess \u7684\u95ee\u9898\uff0c\u89c4\u5219\u5bfc\u81f4 url \u91cd\u590d\u4e86", 
      "id": "https://www.v2ex.com/t/315344", 
      "date_published": "2016-10-25T07:51:08+00:00", 
      "content_html": "<p>\u4e4b\u524d\u516c\u53f8\u6709\u51e0\u4e2a\u7f51\u7ad9\u653e\u5728 vps \u4e0a\uff0c\u7ed3\u679c\u8001\u677f\u89c9\u5f97\u8d39\u7528\u592a\u8d35\uff0c\u6253\u7b97\u5168\u90e8\u8fc1\u79fb\u5230 bluehost \uff0c\u4ee5\u524d\u7528\u7684 nginx \u5c31\u4e0d\u9700\u8981\u6298\u817e.htaccess \uff0c\u73b0\u5728\u5230\u4e86 bluehost \u5c31\u9700\u8981\u641e\u8fd9\u4e2a\u4e1c\u897f\u4e86\u3002</p>\n<p>\u4f7f\u7528\u7684.htaccess \u89c4\u5219\u662f\u5b98\u65b9\u63d0\u4f9b\u7684</p>\n<p><a href=\"https://github.com/symphonycms/symphony-2/blob/master/install/includes/htaccess.txt\" rel=\"nofollow\">https://github.com/symphonycms/symphony-2/blob/master/install/includes/htaccess.txt</a></p>\n<p>\u56e0\u4e3a\u8fd9\u4e2a\u89c4\u5219\u662f\u9488\u5bf9\u7f51\u7ad9\u5728\u6839\u76ee\u5f55\u7684\uff0c\u800c\u6211\u7684 bluehost \u4e0b\u6709\u591a\u4e2a\u7f51\u7ad9\uff0c\u6240\u4ee5\u6211\u5c31\u628a\u91cc\u9762\u7684\nRewriteBase /\n\u6539\u6210\u4e86\nRewriteBase /<a href=\"http://abc.com/\" rel=\"nofollow\">abc.com/</a></p>\n<p>\u73b0\u5728\u5bfc\u81f4\u7684\u95ee\u9898\u662f\uff0c\u8bbf\u95ee\u5176\u4e2d\u7684\u7f51\u7ad9\uff0c\u9996\u9875\u53ef\u4ee5\u663e\u793a\uff0c\u4f46\u662f\u91cc\u9762\u7684\u94fe\u63a5\u7684 url \u591a\u6b21\u91cd\u53e0\uff0c\u6bd4\u5982\u6211\u6709\u4e2a\u7f51\u7ad9 <a href=\"http://eyesion.com\" rel=\"nofollow\">eyesion.com</a> \uff0c\u8fdb\u53bb\u4e4b\u540e\u968f\u4fbf\u8bbf\u95ee\u4e00\u4e2a\u94fe\u63a5\uff0c url \u90fd\u53d8\u6210\u4e86\n<a href=\"http://www.eyesion.com/eyesion.com/eyesion.com/eyesion.com/index.php/?symphony-page=eyesion.com/eyesion.com/eyesion.com/eyesion.com/index.php/&amp;\" rel=\"nofollow\">http://www.eyesion.com/eyesion.com/eyesion.com/eyesion.com/index.php/?symphony-page=eyesion.com/eyesion.com/eyesion.com/eyesion.com/index.php/&amp;</a></p>\n<p>\u8fd9\u6837\u7684\uff0c\u60f3\u95ee\u4e0b\uff0c\u8fd9\u4e2a\u95ee\u9898\u8981\u600e\u4e48\u89e3\u51b3\uff0c\u8c22\u8c22\u3002</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/linus", 
        "name": "linus", 
        "avatar": "https://cdn.v2ex.com/gravatar/d76a42576bdfbcceb5ccba6d78e7cca9?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/309959", 
      "date_modified": "2016-09-30T04:07:05+00:00", 
      "content_html": "\u5916\u7f51\u2014\u9632\u706b\u5899\u2014&gt;   Apache\uff08\u7f51\u6865\uff09\u2014\u2014&gt;\u4ea4\u6362\u673a\u2014\u2014&gt;\u4e00\u5806WEB\u670d\u52a1\u5668\r<br />############### |####################### |\r<br />############192.168.19.2###############192.168.19.100-200", 
      "date_published": "2016-09-30T04:00:26+00:00", 
      "title": "\u600e\u4e48\u8ba9\u6240\u6709 HTTP \u6d41\u91cf\u8fdb\u8fc7 APACHE?\uff0c\uff08\u793a\u610f\u56fe\uff09", 
      "id": "https://www.v2ex.com/t/309959"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/linus", 
        "name": "linus", 
        "avatar": "https://cdn.v2ex.com/gravatar/d76a42576bdfbcceb5ccba6d78e7cca9?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/309511", 
      "title": "\u600e\u4e48\u6837\u8ba9 httpd \u5de5\u4f5c\u5728\u7f51\u6865\u900f\u4f20\u6a21\u5f0f\u4e0b\uff0c\u6240\u6709\u8bf7\u6c42\u90fd\u80fd\u7ecf\u8fc7 httpd\uff1f", 
      "id": "https://www.v2ex.com/t/309511", 
      "date_published": "2016-09-28T06:17:51+00:00", 
      "content_html": ""
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/glxin", 
        "name": "glxin", 
        "avatar": "https://cdn.v2ex.com/avatar/259c/2898/157313_large.png?m=1453973557"
      }, 
      "url": "https://www.v2ex.com/t/293602", 
      "title": "\u56f0\u6270\u6211\u597d\u4e45\u7684 Tomcat \u7ba1\u7406\u9875\u9762 403", 
      "id": "https://www.v2ex.com/t/293602", 
      "date_published": "2016-07-19T15:54:46+00:00", 
      "content_html": "<p>\u524d\u51e0\u5929\u4e70\u4e86\u963f\u91cc ECS \u7528\u6765\u5b66\u4e60\u7528\uff0c\u642d\u5efa\u4e86 Tomcat9 \uff0c\u7ed3\u679c\u8fd9\u4e2a\u94fe\u63a5\uff08 http://115.28.65.217:8080/manager/html \uff09\u5c31\u662f\u6253\u4e0d\u5f00\uff0c\u8fde\u767b\u9646\u754c\u9762\u90fd\u6ca1\u6709\uff0c\u76f4\u63a5\u63d0\u793a 403 \u3002\u7f51\u4e0a\u627e\u4e86\u5f88\u591a\u8d44\u6599\uff0c\u8bf4\u662f\u4fee\u6539 tomcat-users.xml \uff0c\u4f46\u662f\u8fd9\u4e2a\u6587\u4ef6\u6211\u90fd\u6539\u4e86\u597d\u591a\u6b21\u4e86\uff0c\u5c31\u662f\u4e0d\u884c\u3002\u8fd9\u8ba9\u6211\u5f88\u7ea0\u7ed3\u554a\uff0c\u5927\u5bb6\u80fd\u5426\u5e2e\u5e2e\u5fd9\uff0c\u51fa\u4e2a\u6ce8\u610f\u3002\u53e6\u5916\u8fd9\u4e2a\u662f\u6211\u7b2c\u4e00\u6b21\u53d1\u5e16\uff0c\u8981\u662f\u6709\u4e0d\u5f53\u4e4b\u5904\u8fd8\u8bf7\u6307\u51fa\uff0c\u8c22\u8c22\u3002</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/wyx", 
        "name": "wyx", 
        "avatar": "https://cdn.v2ex.com/avatar/9c69/47bd/10317_large.png?m=1350897379"
      }, 
      "url": "https://www.v2ex.com/t/292438", 
      "title": "\u4eca\u5929\u67e5\u770b\u4e86\u4e0b access.log \u53d1\u73b0\u4e00\u4e9b\u5947\u602a\u7684\u4e1c\u897f", 
      "id": "https://www.v2ex.com/t/292438", 
      "date_published": "2016-07-14T04:29:06+00:00", 
      "content_html": "<p>23.251.51.125 - - [14/Jul/2016:12:26:06 +0800] \"GET <a href=\"http://www.proxy-listen.de/azenv.php\" rel=\"nofollow\">http://www.proxy-listen.de/azenv.php</a> HTTP/1.0\" 302 253 \"-\" \"Mozilla/5.0 (compatible; MSIE 6.0; Windows NT 5.1; Trident/5.0)\"\n23.251.51.125 - - [14/Jul/2016:12:26:07 +0800] \"CONNECT <a href=\"http://www.baidu.com:443\" rel=\"nofollow\">www.baidu.com:443</a> HTTP/1.0\" 405 731 \"-\" \"-\"\n23.251.51.125 - - [14/Jul/2016:12:26:07 +0800] \"\\x80\\x98\\x01\\x03\\x01\" 400 0 \"-\" \"-\"</p>\n<p>\u662f\u4e0d\u662f\u88ab\u6302\u9a6c\u4e86\u5440\uff1f</p>\n"
    }
  ]
}