{ "version": "https://jsonfeed.org/version/1", "title": "Apache", "description": "Apache HTTP Server", "home_page_url": "go/apache", "feed_url": "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": "member/CamelName", "name": "CamelName", "avatar": "https://cdn.v2ex.com/avatar/4c77/567c/517440_large.png?m=1728214794" }, "url": "t/1077927", "date_modified": "2024-10-06T11:48:12+00:00", "content_html": "

\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

\n

\u5e0c\u671b\u5b9e\u73b0\u5b50\u57df\u540d\u8bbf\u95ee\u5bf9\u5e94\u7aef\u53e3\uff0c\u5982\u4e0b\uff1a

\n

sub1.domain.com -- ip:3000

\n

sub2.domain.com -- ip:4000

\n

\u6dfb\u52a0\u57df\u540d\u89e3\u6790

\n

\u5728\u57df\u540d\u89e3\u6790\u4f9b\u5e94\u5546\u5904\u5b8c\u6210\u5982\u4e0b\u914d\u7f6e

\n

\"20241006-1910-Fig-1\"

\n

Apache2 \u53cd\u5411\u4ee3\u7406\u914d\u7f6e

\n

\u53c2\u8003\u4ee5\u4e0b\u6b65\u9aa4\uff0c\u5728\u670d\u52a1\u5668\u4e0a\u5b8c\u6210 apache2 \u53cd\u5411\u4ee3\u7406\u914d\u7f6e\u5b50

\n

\u5728 Apache \u4e2d\uff0c\u4f60\u53ef\u4ee5\u4f7f\u7528mod_proxy\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

\n

\u4ee5\u4e0b\u662f\u57fa\u4e8e Apache \u5b8c\u6210\u53cd\u4ee3\u914d\u7f6e\u7684\u6b65\u9aa4\uff1a

\n
    \n
  1. \n

    \u786e\u4fdd\u5b89\u88c5\u4e86 Apache \u548c\u5fc5\u8981\u7684\u6a21\u5757\uff1a\n\u786e\u4fdd\u4f60\u7684 Apache \u670d\u52a1\u5668\u5df2\u7ecf\u5b89\u88c5\u4e86mod_proxy\u3001mod_proxy_http\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

    \n
    sudo a2enmod proxy\nsudo a2enmod proxy_http\n
    \n

    \u5b89\u88c5\u5b8c\u6210\u540e\u9700\u8981\u91cd\u542f Apache \u670d\u52a1\uff1a

    \n
    sudo systemctl restart apache2\n
    \n
  2. \n
  3. \n

    \u914d\u7f6e\u865a\u62df\u4e3b\u673a\uff1a\n\u5728 Apache \u7684\u914d\u7f6e\u6587\u4ef6\u76ee\u5f55\u4e0b\uff08\u901a\u5e38\u662f/etc/apache2/sites-available/\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\u540dservice.example.com\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

    \n
  4. \n
  5. \n

    \u6dfb\u52a0\u53cd\u5411\u4ee3\u7406\u914d\u7f6e\uff1a\n\u7f16\u8f91\u914d\u7f6e\u6587\u4ef6\u5e76\u6dfb\u52a0\u5982\u4e0b\u5185\u5bb9\uff1a

    \n
    <VirtualHost *:80>\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</VirtualHost>\n\n<IfModule mod_ssl.c>\n <VirtualHost *:443>\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 <Proxy *>\n Order deny,allow\n Allow from all\n </Proxy>\n ProxyPass / http://localhost:3000/\n ProxyPassReverse / http://localhost:3000/\n </VirtualHost>\n</IfModule>\n
    \n

    \u8fd9\u4e2a\u914d\u7f6e\u505a\u4e86\u51e0\u4ef6\u4e8b\uff1a

    \n\n
  6. \n
  7. \n

    \u542f\u7528\u7ad9\u70b9\u5e76\u91cd\u542f Apache\uff1a\n\u4fdd\u5b58\u66f4\u6539\u540e\u7684\u914d\u7f6e\u6587\u4ef6\uff0c\u7136\u540e\u542f\u7528\u8fd9\u4e2a\u7ad9\u70b9\u914d\u7f6e\uff1a

    \n
    sudo a2ensite your-config-file.conf\nsudo systemctl reload apache2\n
    \n
  8. \n
  9. \n

    \u6d4b\u8bd5\u914d\u7f6e\uff1a\n\u4f7f\u7528\u6d4f\u89c8\u5668\u6216\u5176\u4ed6\u5de5\u5177\uff08\u5982 curl \uff09\u8bbf\u95eehttp://service.example.com\uff0c\u5e94\u8be5\u4f1a\u88ab\u81ea\u52a8\u91cd\u5b9a\u5411\u5230https://service.example.com\uff0c\u5e76\u4e14\u6700\u7ec8\u53ef\u4ee5\u770b\u5230\u8fd0\u884c\u5728 8080 \u7aef\u53e3\u4e0a\u7684\u670d\u52a1\u5185\u5bb9\u3002

    \n
  10. \n
\n

\u95ee\u9898

\n

\u5b8c\u6210\u914d\u7f6e\u540e\uff0c\u8bbf\u95eehttp://sub1.example.com \uff0c\u65e0\u6cd5\u8bbf\u95ee\uff0c\u63d0\u793a 502

\n

\u8bf7\u6559

\n
    \n
  1. \n

    \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

    \n
  2. \n
  3. \n

    \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

    \n
  4. \n
\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": "t/1077927" }, { "author": { "url": "member/tianmao", "name": "tianmao", "avatar": "https://cdn.v2ex.com/gravatar/3d574e35aa7243298a52ccb418cb87ce?s=73&d=retro" }, "url": "t/1053728", "title": "Apache \u9519\u8bef\uff1a(20014)Internal error", "id": "t/1053728", "date_published": "2024-06-30T09:31:36+00:00", "content_html": "\u8bf7\u95ee\u8fd9\u4e2a\u4ec0\u4e48\u9519\u8bef" }, { "author": { "url": "member/yucho", "name": "yucho", "avatar": "https://cdn.v2ex.com/gravatar/e3f2c8c9f3557961b88c5e79fbcf4d0d?s=73&d=retro" }, "url": "t/906207", "date_modified": "2023-01-03T03:20:11+00:00", "content_html": "

\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 external-content.duckduckgo.com \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

\n
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
\n

\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

\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": "t/906207" }, { "author": { "url": "member/wzx155", "name": "wzx155", "avatar": "https://cdn.v2ex.com/avatar/d76a/28c8/489744_large.png?m=1608095013" }, "url": "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": "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

#\u7981\u6b62\u6240\u6709\u975e\u6cd5\u57df\u540d \ufeff

<VirtualHost *:80> \ufeff

ServerName \u670d\u52a1\u5668 ip \ufeff

ServerAlias * \ufeff

<Location /> \ufeff

Order Allow,Deny \ufeff

Deny from all \ufeff

</Location>

</VirtualHost>\u3002

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": "member/nelsonken", "name": "nelsonken", "avatar": "https://cdn.v2ex.com/avatar/8566/fb52/276275_large.png?m=1630288332" }, "url": "t/800144", "title": "flink \u5982\u4f55\u63d0\u9ad8\u5b57\u7b26\u4e32\u89e3\u6790\u6027\u80fd", "id": "t/800144", "date_published": "2021-09-06T05:32:30+00:00", "content_html": "

flink \u4efb\u52a1\u89e3\u6790\u8d85\u5927 json \u6210\u4e3a\u74f6\u9888

\n" }, { "author": { "url": "member/zhoudaiyu", "name": "zhoudaiyu", "avatar": "https://cdn.v2ex.com/avatar/b75f/9ee0/163414_large.png?m=1682659533" }, "url": "t/781707", "date_modified": "2021-06-06T08:21:53+00:00", "content_html": "

\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

\n

\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

\n

\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

\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": "t/781707" }, { "author": { "url": "member/leeraya", "name": "leeraya", "avatar": "https://cdn.v2ex.com/gravatar/64c509993a406b707d67c6f6572f9d07?s=73&d=retro" }, "url": "t/740543", "title": "\u90e8\u7f72\u4e2a apache/doris \u600e\u4e48\u5c31\u8fd9\u4e48\u590d\u6742", "id": "t/740543", "date_published": "2020-12-31T02:58:06+00:00", "content_html": "

https://www.bookstack.cn/read/Doris/0.md\n\u5c31\u4e0d\u80fd\u63d0\u4f9b\u4e2a\u5355\u673a\u7248\uff0c\u4e00\u952e\u542f\u52a8\u5417\uff0c\u641e\u4e86\u4e00\u5929\u4e86\u90fd\u3002

\n" }, { "author": { "url": "member/howandsen", "name": "howandsen", "avatar": "https://cdn.v2ex.com/gravatar/467dd7c245de904077514f424afbc7df?s=73&d=retro" }, "url": "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

\u76ee\u524d\u662f\u7528 http \u901a\u4fe1\u3002

ProxyPass \"http://127.0.0.1:8080\"

\u6211\u7684\u95ee\u9898\u662f\uff0chttpd \u652f\u6301\u522b\u7684\u901a\u4fe1\u65b9\u5f0f\u4e48\uff1f

\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": "t/722066" }, { "author": { "url": "member/Vimax", "name": "Vimax", "avatar": "https://cdn.v2ex.com/avatar/3e19/b530/287706_large.png?m=1603177006" }, "url": "t/685677", "date_modified": "2020-06-29T09:13:37+00:00", "content_html": "

docker \u955c\u50cf\u4f7f\u7528\u7684\u662f\u4e0b\u9762\u8fd9\u4e2a\uff1a

\n
docker run -t -p 80:80 -d -v /home:/h5ai --name h5ai ilemonrain/h5ai:full\n
\n

\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.

\n
# 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
\n

\u67e5\u770b\u4e86\u4e0b\u5e94\u7528\u670d\u52a1\u5668\u662f apache

\n
Apache/2.4.33 (Unix) Server at xxx.xxx.xxx.xxx Port 80\n
\n

\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

\n
vim /etc/httpd/conf/httpd.conf\n\n
\n\n

...

\n

\u4fee\u6539\u4fdd\u5b58\u540e\uff0c\u91cd\u542f docker \u5bb9\u5668\uff0c\u6d4f\u89c8\u6587\u672c raw\uff0c\u8fd8\u662f\u4e71\u7801\u3002

\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": "t/685677" }, { "author": { "url": "member/hbolive", "name": "hbolive", "avatar": "https://cdn.v2ex.com/gravatar/c869ce009722f7ad46999674d6392cb7?s=73&d=retro" }, "url": "t/636304", "title": "\u5173\u4e8e htaccess Redirect 301 \u95ee\u9898\uff0c\u600e\u4e48\u53bb\u6389\u53c2\u6570", "id": "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
Redirect 301 /1.html /test/
\u7ed3\u679c\u8bbf\u95ee /1.html \u65f6\uff0c\u6700\u540e\u7684 URL \u5730\u5740\u662f\uff1a/test/?/1.html
\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
apache2.4/windows
\u4ee5\u524d\u4e5f\u5199\u8fc7\u7c7b\u4f3c\u7684\u91cd\u5b9a\u5411\uff0c\u6ca1\u6709\u8fd9\u4e2a\u95ee\u9898\u3002\u3002" }, { "author": { "url": "member/harryperlau", "name": "harryperlau", "avatar": "https://cdn.v2ex.com/gravatar/f5b35e95e0228223911d4f2c9bd988de?s=73&d=retro" }, "url": "t/633443", "title": "\u53cd\u5411\u4ee3\u7406\u914d\u7f6e ip \u53ef\u4ee5\u8bbf\u95ee\uff0c\u57df\u540d\u4e0d\u884c", "id": "t/633443", "date_published": "2019-12-30T01:36:45+00:00", "content_html": "

\u7528 Apache \u505a\u53cd\u5411\u4ee3\u7406\u914d\u7f6e\uff0c\u914d\u7f6e\u6587\u4ef6\u5982\u4e0b\uff1a

\n
 ProxyPass /webapp/ balancer://webapp-proxy/\n ProxyPassReverse /webapp/ balancer://webapp-proxy/\n <Proxy balancer://webapp-proxy>\n BalancerMember http://10.61.16.28:8523/webapp/\n </Proxy>\n\n ProxyPassMatch ^(/qa(/\\w+)+) balancer://qa-proxy/\n ProxyPassReverse ^(/qa(/\\w+)+) balancer://qa-proxy/\n <Proxy balancer://qa-proxy>\n BalancerMember http://10.61.16.27:8522/\n </Proxy>\n\n\n\n ProxyPassMatch ^(/qa-client(/\\w+)*.*) balancer://qa-client-proxy/\n ProxyPassReverse ^(/qa-client(/\\w+)*.*) balancer://qa-client-proxy/\n <Proxy balancer://qa-client-proxy>\n BalancerMember http://10.61.16.28:8524/\n </Proxy>\n\n\n ProxyPassMatch ^(/wx(/\\w+)*.*) balancer://qa-wx-proxy/\n ProxyPassReverse ^(/wx(/\\w+)*.*) balancer://qa-wx-proxy/\n <Proxy balancer://qa-wx-proxy>\n BalancerMember http://10.61.16.28:8525/\n </Proxy>\n
\n

\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

\n" }, { "author": { "url": "member/PingCAP", "name": "PingCAP", "avatar": "https://cdn.v2ex.com/avatar/daac/3644/162717_large.png?m=1536739465" }, "url": "t/632978", "title": "\u300c\u5206\u5e03\u5f0f\u7cfb\u7edf\u524d\u6cbf\u6280\u672f\u300d\u4e13\u9898 | Pulsar \u7684\u8bbe\u8ba1\u54f2\u5b66", "id": "t/632978", "date_published": "2019-12-27T11:03:51+00:00", "content_html": "
\n

\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

\n
\n

\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

\n

\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

\n

\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

\n

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

\n

\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

\n

\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

\n\n

\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

\n

\u4e0b\u9762\u6211\u4eec\u4ece\u6280\u672f\u89d2\u5ea6\u6765\u8be6\u7ec6\u89e3\u6790 Apache Pulsar \u7684\u67b6\u6784\u3002

\n

Pulsar \u7684\u5206\u5c42\u67b6\u6784

\n

\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

\n

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

\n

\"\"

\n<center>\u56fe 1 \u4f20\u7edf\u5355\u4f53\u67b6\u6784 vs. Pulsar \u5b58\u50a8\u8ba1\u7b97\u5206\u5c42\u67b6\u6784</center>\n

\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

\n

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

\n

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

\n

\"\"

\n<center>\u56fe 2 Apache Pulsar \u7cfb\u7edf\u67b6\u6784</center>\n

\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

\n

\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

\n

IO \u8bbf\u95ee\u6a21\u5f0f\u7684\u4f18\u52bf

\n

\u6d41\u7cfb\u7edf\u4e2d\u901a\u5e38\u6709\u4e09\u79cd IO \u8bbf\u95ee\u6a21\u5f0f\uff1a

\n
    \n
  1. \n

    \u5199\uff08 Writes \uff09\uff1a\u5c06\u65b0\u6570\u636e\u5199\u5165\u7cfb\u7edf\u4e2d\uff1b

    \n
  2. \n
  3. \n

    \u8ffd\u5c3e\u8bfb\uff08 Tailing Reads \uff09\uff1a\u8bfb\u53d6\u6700\u8fd1\u5199\u5165\u7684\u6570\u636e\uff1b

    \n
  4. \n
  5. \n

    \u8ffd\u8d76\u8bfb\uff08 Catch-up Reads \uff09\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

    \n
  6. \n
\n

\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

\n

\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

\n
    \n
  1. \n

    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

    \n
  2. \n
  3. \n

    \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

    \n
  4. \n
\n

\"\"

\n<center>\u56fe 3 \u4f20\u7edf\u5355\u4f53\u67b6\u6784 vs. Pulsar \u5b58\u50a8\u8ba1\u7b97\u5206\u5c42\u67b6\u6784</center>\n

\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

\n

\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

\n

\u5199

\n

\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

\n

\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

\n

\"\"

\n<center>\u56fe 4 Writes \u8bbf\u95ee\u6a21\u5f0f\u5bf9\u6bd4</center>\n

\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

\n

\u8ffd\u5c3e\u8bfb

\n

\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

\n

\"\"

\n<center>\u56fe 5 Tailing Read \u8bbf\u95ee\u6a21\u5f0f\u5bf9\u6bd4</center>\n

\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\u8ffd\u8d76\u8bfb

\n

\u8ffd\u8d76\u8bfb\uff08Catch-up Reads\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

\n

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

\n

\u4e09\u79cd IO \u6a21\u5f0f\u653e\u5728\u4e00\u8d77\u770b

\n

\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

\n

\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

\n

\"\"

\n<center>\u56fe 6 \u4e09\u79cd IO \u6a21\u5f0f\u5bf9\u6bd4</center>\n

\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

\n

\u8d85\u8d8a\u4f20\u7edf\u6d88\u606f\u7cfb\u7edf

\n

\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

\n

\u65e0\u9650\u7684\u6d41\u5b58\u50a8

\n

\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

\n

\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

\n

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

\n

\"\"

\n<center>\u56fe 7 \u65e0\u9650\u7684\u6d41\u5b58\u50a8</center>\n

\u6570\u636e\u67e5\u8be2\u548c\u6570\u636e\u5206\u6790

\n

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

\n

\"\"

\n<center>\u56fe 8 Presto \u4e0e Apache Pulsar \u7684\u96c6\u6210</center>\n

Pulsar \u7684\u5468\u8fb9\u751f\u6001

\n

\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

\n

\"\"

\n<center>\u56fe 9 Apache Pulsar \u5468\u8fb9\u751f\u6001</center>\n

\u603b\u7ed3

\n

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

\n

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

\n
\n

\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

\n
\n

\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

\n

\"\"

\n" }, { "author": { "url": "member/islujw", "name": "islujw", "avatar": "https://cdn.v2ex.com/avatar/c742/e00a/200742_large.png?m=1635782023" }, "url": "t/626783", "title": "\u6709\u5728 macOS \u914d\u7f6e Apache \u670d\u52a1\u5668\u7684\u5417\uff1f", "id": "t/626783", "date_published": "2019-12-07T06:00:25+00:00", "content_html": "

macOS \u81ea\u5e26\u4e86 Apache\u3002

\n

\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

\n" }, { "author": { "url": "member/lianta", "name": "lianta", "avatar": "https://cdn.v2ex.com/gravatar/78c6facf5fc50d2335e1285d21e2d4d1?s=73&d=retro" }, "url": "t/595361", "title": "\u5927\u4f6c\u4eec\u6c42\u6559\uff1a HttpClients.createDefault()", "id": "t/595361", "date_published": "2019-08-26T14:37:45+00:00", "content_html": "

\u4f7f\u7528 HttpClients.createDefault() \u83ab\u540d\u8fdb\u5165\u5230 FutureTask\u3002\u5e76\u88ab\u6355\u83b7\u5230 Throwable\u3002 \u6c42\u89e3\uff01\uff01\uff01

\n" }, { "author": { "url": "member/iamverylovely", "name": "iamverylovely", "avatar": "https://cdn.v2ex.com/gravatar/8b6f0443d38f323e4b935414e70f1d06?s=73&d=retro" }, "url": "t/586565", "title": "LApache \u865a\u62df\u4e3b\u673a\u8bbe\u7f6e.htaccess \u5b9e\u73b0\u5168\u7ad9 HTTPS", "id": "t/586565", "date_published": "2019-07-26T12:45:15+00:00", "content_html": "

Apache \u865a\u62df\u4e3b\u673a\u5b9e\u73b0 301 HTTPS WWW

\n
<IfModule mod_rewrite.c>\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</IfModule>\n
\n

\u7ed3\u679c\u662f\uff1a http://iamverylovely.com http://www.iamverylovely.com https://iamverylovely.com

\n

\u5168\u90e8\u8df3\u8f6c\u81f3\uff1a https://www.iamverylovely.com

\n

\u8bb0\u5f55\u4e00\u4e0b\u3002

\n

\u5907\u6ce8\uff1a\u4f7f\u7528\u547d\u4ee4\uff1acurl -I \u52a0\u4e0a URL\uff0c\u53ef\u4ee5\u5feb\u901f\u67e5\u770b Header\u3002

\n" }, { "author": { "url": "member/45gfg9", "name": "45gfg9", "avatar": "https://cdn.v2ex.com/gravatar/559d440e2e726ab0b939dd9277562313?s=73&d=retro" }, "url": "t/576725", "title": "Apache2 \u5982\u4f55\u914d\u7f6e SSL \u8bc1\u4e66\u554a", "id": "t/576725", "date_published": "2019-06-23T14:51:28+00:00", "content_html": "

\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 c14.45gfg9.net \u2019\u8bc1\u4e66\u540d\u79f0\u4e0e\u8f93\u5165\u4e0d\u5339\u914d\u201d

\n

SSL \u8bc1\u4e66\u662f\u7533\u8bf7\u7684\u817e\u8baf\u4e91\u514d\u8d39\u8bc1\u4e66

\n

\u914d\u7f6e\u6587\u4ef6 default-ssl.conf https://paste.ubuntu.com/p/M33F5jVmzZ/\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

\n

\u914d\u7f6e\u8ddf\u7740 https://cloud.tencent.com/document/product/400/35243#step6 \u8d70\u7684

\n

\u65b0\u4eba\u5c0f\u900f\u660e\u8bf7\u6c42\u5e2e\u52a9...

\n" }, { "author": { "url": "member/sxx", "name": "sxx", "avatar": "https://cdn.v2ex.com/gravatar/85019cbf0f24b9c169a956c8baf0d83f?s=73&d=retro" }, "url": "t/574972", "title": "\u8bf7\u6559\u4e50\u4e8e\u52a9\u4eba\u3001\u9ad8\u624b\u5982\u4e91\u7684 V2 \u670b\u53cb\u4eec\uff01", "id": "t/574972", "date_published": "2019-06-18T02:07:40+00:00", "content_html": "

\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

\n" }, { "author": { "url": "member/elsagong", "name": "elsagong", "avatar": "https://cdn.v2ex.com/avatar/444d/4dbc/301403_large.png?m=1536042322" }, "url": "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": "t/564404", "date_published": "2019-05-15T08:10:51+00:00", "content_html": "

\u4e0b\u5348\u597d\uff0c\u54a8\u8be2\u5927\u5bb6\u5173\u4e8eApache2\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\u8fc7localhost:8080\u8bbf\u95eeApache2\u7684\u7f51\u7ad9\uff0c\u4f46\u662f\u8bbf\u95ee\u5b50\u57df\u540dsub.domain.com\u6216\u8005sub.domain.com:8080\u65f6\uff0c\u4f1a\u51fa\u73b0 Nginx 80 \u7aef\u53e3\u7684400 Bad Request\u9519\u8bef\uff0c\u53ef\u662f\u6211\u5b50\u57df\u540d\u660e\u660e\u7ed1\u5b9a\u7684\u662f Apache2 \u7684 8080 \u7aef\u53e3\u554a\ud83d\ude02

\n

\u6709\u901a\u8fc7netstat -tlpn\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\u884clsof -i TCP:8080 -s TCP:LISTEN, \u9700\u8981\u91cd\u542f\u7684\u670d\u52a1\u90fd\u91cd\u542f\u8fc7.....

\n

\u6c42\u52a9\uff0c\u611f\u8c22

\n" }, { "author": { "url": "member/getui", "name": "getui", "avatar": "https://cdn.v2ex.com/avatar/72ad/8dd8/132512_large.png?m=1578902394" }, "url": "t/555199", "title": "\u4e2a\u63a8\u57fa\u4e8e Apache Pulsar \u7684\u4f18\u5148\u7ea7\u961f\u5217\u65b9\u6848", "id": "t/555199", "date_published": "2019-04-15T02:25:07+00:00", "content_html": "

\"\"\n\u4f5c\u8005\uff1a\u4e2a\u63a8\u5e73\u53f0\u7814\u53d1\u5de5\u7a0b\u5e08 \u7965\u5b50

\n

\u4e00\u3001\u4e1a\u52a1\u80cc\u666f

\n

\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\"\"\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

\n

\u4e8c\u3001\u57fa\u4e8e Kafka \u7684\u4f18\u5148\u7ea7\u961f\u5217\u65b9\u6848

\n

\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

\n

\u67b6\u6784\n\"\"\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

\n
    \n
  1. \n

    \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

    \n
  2. \n
  3. \n

    \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

    \n
  4. \n
\n

Kafka \u65b9\u6848\u9047\u5230\u7684\u95ee\u9898

\n

\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

\n
    \n
  1. \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\"\"
  2. \n
  3. 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
  4. \n
\n

\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

\n

\u4e09\u3001\u4e3a\u4ec0\u4e48\u662f Pulsar

\n

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

\n

\u67b6\u6784\n\"\"

\n

Topic \u6570\u91cf\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

\n

\u6d88\u8d39\u6a21\u578b\nPulsar \u652f\u6301\u4e09\u79cd\u6d88\u8d39\u6a21\u578b\uff1aExclusive\u3001Shared \u548c Failover\u3002\n\"\"\nExclusive (\u72ec\u4eab)\uff1a\u4e00\u4e2a Topic \u53ea\u80fd\u88ab\u4e00\u4e2a\u6d88\u8d39\u8005\u6d88\u8d39\u3002Pulsar \u9ed8\u8ba4\u4f7f\u7528\u8fd9\u79cd\u6a21\u5f0f\u3002

\n

Shared(\u5171\u4eab)\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

\n

Failover (\u707e\u5907)\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

\n

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

\n

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

\n

\u5b58\u50a8\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 BookKeeper \u5b98\u7f51\u3002

\n

Segment\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

\n

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

\n

\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\"\"

\n

\u6269\u5bb9\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

\n

\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\"\"

\n

Broker \u6545\u969c\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\"\"

\n

Bookie \u6545\u969c\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

\n

\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\"\"

\n

\u56db\u3001\u57fa\u4e8e Pulsar \u7684\u4f18\u5148\u7ea7\u961f\u5217\u65b9\u6848

\n

\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

\n
    \n
  1. \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
  2. \n
  3. \u4e2d\u9ad8\u4f18\u5148\u7ea7 task \u90fd\u72ec\u4eab\u4e00\u4e2a Topic\uff0c\u4f4e\u4f18\u5148\u7ea7 task \u5171\u4eab n \u4e2a Topic\u3002
  4. \n
  5. \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
  6. \n
  7. \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
  8. \n
  9. \u5229\u7528 Shared \u6a21\u5f0f, \u53ef\u4ee5\u52a8\u6001\u6dfb\u52a0\u5220\u9664 consumer\uff0c\u4e14\u4e0d\u4f1a\u89e6\u53d1 Rebalance \u60c5\u51b5\u3002
  10. \n
  11. \u5229\u7528 BookKeeper \u7279\u6027\uff0c\u53ef\u4ee5\u66f4\u7075\u6d3b\u7684\u6dfb\u52a0\u5b58\u50a8\u8d44\u6e90\u3002\n\"\"
  12. \n
\n

\u4e94\u3001Pulsar \u5176\u4ed6\u5b9e\u8df5

\n
    \n
  1. \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
  2. \n
  3. \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
  4. \n
  5. \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
  6. \n
  7. 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
  8. \n
  9. 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
  10. \n
  11. \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
  12. \n
  13. Pulsar dashboard \u4e0a\u7684 storage size \u548c prometheus \u4e0a\u7684 storage size (\u5305\u542b\u526f\u672c\u5927\u5c0f)\u6982\u5ff5\u4e0d\u4e00\u6837\u3002
  14. \n
  15. \u628adbStorage_rocksDB_blockCacheSize \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
  16. \n
  17. \u4f7f\u7528\u591a partition\uff0c\u63d0\u9ad8\u541e\u5410\u3002
  18. \n
  19. \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
  20. \n
  21. \u5982\u679c\u4e1a\u52a1\u4e2d\u4f1a\u51fa\u73b0\u5355 Topic \u4f53\u91cf\u8fc7\u5927\u7684\u60c5\u51b5\uff0c\u5efa\u8bae\u628a backlogQuotaDefaultLimitGB \u8bbe\u7f6e\u7684\u8db3\u591f\u5927(\u9ed8\u8ba4 10G), \u907f\u514d\u56e0\u4e3a\u9ed8\u8ba4\u4f7f\u7528producer_request_hold \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 backlogQuotaDefaultRetentionPolicy\u3002
  22. \n
  23. \u6839\u636e\u5b9e\u9645\u4e1a\u52a1\u573a\u666f\u4e3b\u52a8\u9009\u62e9 backlog quota\u3002
  24. \n
  25. 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
  26. \n
  27. \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
  28. \n
\n

\u516d\u3001\u603b\u7ed3

\n

\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

\n

\u53c2\u8003\u6587\u732e\uff1a

\n

[1] \u6bd4\u62fc Kafka, \u5927\u6570\u636e\u5206\u6790\u65b0\u79c0 Pulsar \u5230\u5e95\u597d\u5728\u54ea( https://www.infoq.cn/article/1UaxFKWUhUKTY1t_5gPq)

\n

[2] \u5f00\u6e90\u5b9e\u65f6\u6570\u636e\u5904\u7406\u7cfb\u7edf Pulsar\uff1a\u4e00\u5957\u641e\u5b9a Kafka+Flink+DB( https://juejin.im/post/5af414365188256717765441)

\n" }, { "author": { "url": "member/qazwsxkevin", "name": "qazwsxkevin", "avatar": "https://cdn.v2ex.com/gravatar/bfefb99d6203d351791672a1d3fc936a?s=73&d=retro" }, "url": "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": "t/542915", "date_published": "2019-03-09T15:50:34+00:00", "content_html": "

\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

\n" }, { "author": { "url": "member/astome", "name": "astome", "avatar": "https://cdn.v2ex.com/avatar/c507/d02f/182410_large.png?m=1495594044" }, "url": "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": "t/487327", "date_published": "2018-09-08T03:22:10+00:00", "content_html": "

apache \u4e0b\u5982\u4f55\u5c06 http://xxx.com \uff0chttp://www.xxx.com \uff0chttps://xxx.com \u91cd\u5b9a\u5411 https://www.xxx.com \u7684

\n" }, { "author": { "url": "member/kevin168", "name": "kevin168", "avatar": "https://cdn.v2ex.com/gravatar/1dbe4b687790ded894c5e43ebe875c9e?s=73&d=retro" }, "url": "t/476314", "date_modified": "2018-08-02T08:22:06+00:00", "content_html": "

\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

\n

127.0.0.1 - - [02 /AUG/2018:16:00:05 +0800] \"OPTIONS * HTTP/1.0\" 200 -

\n

127.0.0.1 - - [02 /AUG/2018:16:00:04 +0800] \"OPTIONS * HTTP/1.0\" 200 -

\n

127.0.0.1 - - [02 /AUG/2018:16:00:03 +0800] \"OPTIONS * HTTP/1.0\" 200 -

\n

127.0.0.1 - - [02 /AUG/2018:16:00:02 +0800] \"OPTIONS * HTTP/1.0\" 200 -

\n

127.0.0.1 - - [02 /AUG/2018:16:00:01 +0800] \"OPTIONS * HTTP/1.0\" 200 -

\n

\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

\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": "t/476314" }, { "author": { "url": "member/jookr", "name": "jookr", "avatar": "https://cdn.v2ex.com/avatar/ed9a/2cc7/76517_large.png?m=1577327983" }, "url": "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": "t/476215", "date_published": "2018-08-02T03:56:45+00:00", "content_html": "

\u6839\u76ee\u5f55\u4e0b\u7684.htaccess\n\u5185\u5bb9

\n
<IfModule mod_rewrite.c>\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</IfModule>\n
\n

/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

\n

\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

\n" }, { "author": { "url": "member/jhwangpin", "name": "jhwangpin", "avatar": "https://cdn.v2ex.com/gravatar/b023456753626fb03a539c791d141ff5?s=73&d=retro" }, "url": "t/469211", "title": "flume \u6293 TOMCAT \u65e5\u5fd7\u53d1 kafka\uff0c\u600e\u4e48\u6309\u65e5\u5fd7\u5185\u5bb9\u5206\u6bb5\u53d1\u9001\uff1f", "id": "t/469211", "date_published": "2018-07-09T03:26:07+00:00", "content_html": "

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

\n" }, { "author": { "url": "member/frmongo", "name": "frmongo", "avatar": "https://cdn.v2ex.com/avatar/3a34/7013/227985_large.png?m=1513758048" }, "url": "t/467741", "title": "ubuntu16.04 \u642d\u5efa wiki \u6c42\u52a9", "id": "t/467741", "date_published": "2018-07-03T03:45:02+00:00", "content_html": "

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

\n

2.\u5b89\u88c5\u73af\u5883\uff1a

\n

\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 </?php phpinfo(); /?> \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

\n

\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

\n" }, { "author": { "url": "member/tribute", "name": "tribute", "avatar": "https://cdn.v2ex.com/avatar/92ef/a155/320781_large.png?m=1721552846" }, "url": "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": "t/462263", "date_published": "2018-06-11T12:08:09+00:00", "content_html": "

\u7cfb\u7edf\u7248\u672c\nDistributor ID:\tCentOS\nDescription:\tCentOS Linux release 7.5.1804 (Core)\nRelease:\t7.5.1804\nCodename:\tCore

\n

httpd \u7248\u672c\nServer version: Apache/2.4.6 (CentOS)\nServer built: Apr 20 2018 18:10:38

\n

\u6709\u6ca1\u6709\u53c2\u8003\u7684\u914d\u7f6e\u6587\u4ef6\uff0chttpd.conf \u548c ssl.conf \u4ee5\u53ca\u4e2a\u4eba\u7ad9\u70b9\u7684\u914d\u7f6e

\n

\u4e07\u5206\u611f\u8c22

\n" }, { "author": { "url": "member/pppguest3962", "name": "pppguest3962", "avatar": "https://cdn.v2ex.com/avatar/1437/cf7c/214909_large.png?m=1677912709" }, "url": "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": "t/450734", "date_published": "2018-04-28T09:45:27+00:00", "content_html": "

\u8fd9\u4e2a\u4e3b\u673a\u5b8c\u6574\u662f https://192.168.89.41:8080

\n

\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

\n
<!DOCTYPE HTML PUBLIC \"-//IETF//DTD HTML 2.0//EN\">\n\n<html><head>\n<title>400 Bad Request</title>\n</head><body>\n<h1>Bad Request</h1>\n<p>Your browser sent a request that this server could not understand.<br />\nReason: You're speaking plain HTTP to an SSL-enabled server port.<br />\nInstead use the HTTPS scheme to access this URL, please.<br />\n<blockquote>Hint: <a href=\"https://localhost:8080/\"><b>https://localhost:8080/</b></a></blockquote></p>\n</body></html>\n
\n

\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

\n

cat /etc/httpd/conf/httpd.conf

\n
#8080,Test\n<VirtualHost *:8080> \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 <Directory \"/opt/test1\">\n Options Indexes FollowSymLinks\n #Options FollowSymLinks\n #Options Indexes \n AllowOverride None\n Order allow,deny\n Allow from all\n </Directory>\n</VirtualHost>\n\n#9090,Test2\n<VirtualHost *:9090>\n DocumentRoot /opt/test2\n DocumentRoot \"/opt/test2\"\n <Directory \"/opt/test2\">\n Options Indexes FollowSymLinks\n #Options FollowSymLinks\n #Options Indexes\n AllowOverride None\n Order allow,deny\n Allow from all\n </Directory>\n</VirtualHost>\n
\n

cat /opt/test1/.htaccess

\n
RewriteEngine On\nRewriteCond %{HTTPS} !=on\nRewriteRule ^(.*) https://%{SERVER_NAME}/$1 [R,L]\n
\n" }, { "author": { "url": "member/mgsparrow", "name": "mgsparrow", "avatar": "https://cdn.v2ex.com/avatar/075e/b647/241127_large.png?m=1500431005" }, "url": "t/445839", "title": "\u8bf7\u6559\u4e00\u4e0b\u5728 Lightsail \u90e8\u7f72 Python Flask project \u65f6\u5019\u9047\u5230\u7684\u95ee\u9898", "id": "t/445839", "date_published": "2018-04-11T02:10:15+00:00", "content_html": "

\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

\n

\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\nhttps://www.digitalocean.com/community/tutorials/how-to-deploy-a-flask-application-on-an-ubuntu-vps
\n\u7136\u540e\uff0c\u6211\u7684 /etc/apache2/sites-available/Item-Catalog.conf \u914d\u7f6e\u8bf7\u53c2\u8003\u6b64\u56fe\uff1a https://imgur.com/uaJ9IWm
\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

\n

Job for apache2.service failed because the control process exited with error code. See \"systemctl status apache2.service\" and \"journalctl -xe\" for details.

\n

\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

\n" }, { "author": { "url": "member/rocklinsuv", "name": "rocklinsuv", "avatar": "https://cdn.v2ex.com/gravatar/8d3ce525c8bc32158b3756cae9504784?s=73&d=retro" }, "url": "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": "t/438506", "date_published": "2018-03-15T15:46:05+00:00", "content_html": "

\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

\n" }, { "author": { "url": "member/zcdll", "name": "zcdll", "avatar": "https://cdn.v2ex.com/gravatar/2963d1729b1d5c44eeab929899a4cfe1?s=73&d=retro" }, "url": "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": "t/408385", "date_published": "2017-11-21T13:43:12+00:00", "content_html": "

\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

\n

\u7136\u540e\uff0c\u73b0\u5728\u5df2\u7ecf\u53ef\u4ee5\u4f7f\u7528\u4e86\u3002

\n

\u73b0\u5728\u60f3\u914d\u7f6e\u4e00\u5957 \u6d4b\u8bd5\u73af\u5883\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

\n

\u6211\u4eca\u5929\u4e0b\u5348\u8bd5\u4e86\u4e00\u4e0b\uff0c\u73b0\u5728\u901a\u8fc7

\n

a.xyz.com ==> laravel_1

\n

b.xyz.com ==> laravel_2

\n

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

\n

\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

\n

a.xyz.com ==> laravel_1

\n

a.xyz.com/test ==> laravel_2

\n

\u50cf\u4e0a\u9762\u8fd9\u6837\u8d70\u3002

\n

\u4e0d\u5728 Laravel \u91cc\u9762\u914d\u7f6e routes/web.php \uff0c\u80fd\u4e0d\u80fd\u901a\u8fc7 Apache \u6765\u8f6c\u53d1\uff1f

\n

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

\n

\u8c22\u8c22\uff01

\n" }, { "author": { "url": "member/terence4444", "name": "terence4444", "avatar": "https://cdn.v2ex.com/avatar/dba8/402e/137948_large.png?m=1772302321" }, "url": "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": "t/405715", "date_published": "2017-11-12T06:34:03+00:00", "content_html": "

\u4e8b\u4ef6\u8d77\u56e0\uff1a

\n

\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

\n

\u8fd9\u91cc\u505a\u4e2a\u5e7f\u544a\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

\n

\u6545\u969c\u73b0\u8c61\uff1a

\n

\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

\n
\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
\n

\u89e3\u51b3\u65b9\u6cd5\uff1a

\n

\u5728 MPM \u91cc\u8c03\u8bd5\u4e86\u5f88\u4e45\u6ca1\u627e\u5230\u95ee\u9898\uff0c\u540e\u6765\u627e\u5230\u4e86\u8fd9\u4e2a\u8ba8\u8bba\uff1a\nhttps://communities.ca.com/thread/241692373

\n

\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

\n
AcceptFilter https connect\nAcceptFilter http connect\n
\n

\u6211\u770b\u5230\u5f88\u591a\u4e2d\u6587\u7f51\u7ad9\uff08\u90fd\u662f\u6284\u7684\u540c\u4e00\u4e2a\u6765\u6e90\uff09\u8bf4\uff1a

\n
\u52a0\u5165\uff1a\nWin32DisableAcceptEx\n\n\u6216\u8005\uff1a\nAcceptFilter https none\nAcceptFilter http none\n
\n

\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

\n

\u5728\u8fd9\u91cc\u8bb0\u5f55\u4e00\u4e0b\u5206\u4eab\u7ed9\u5927\u5bb6\uff0c\u4e5f\u4ee5\u514d\u81ea\u5df1\u5fd8\u4e86\u3002

\n" }, { "author": { "url": "member/scxiaoxu", "name": "scxiaoxu", "avatar": "https://cdn.v2ex.com/gravatar/4edf659d3328fd14e7410ffd05de6cd9?s=73&d=retro" }, "url": "t/400214", "title": "\u7ebf\u4e0a\u6b63\u5f0f\u73af\u5883\u4e2d\u7684 apache \u600e\u4e48\u914d\u7f6e", "id": "t/400214", "date_published": "2017-10-24T05:06:21+00:00", "content_html": "

\u8bf7\u95ee\u7ebf\u4e0a\u73af\u5883\u4e2d\u7684 apache \u600e\u4e48\u914d\u7f6e\u554a\uff0c\u6bd4\u5982\u6211 a.com \u8bbf\u95ee\u9ed8\u8ba4 www \u76ee\u5f55\uff0c\u6211\u60f3\u505a\u4e2a\u4e8c\u7ea7\u57df\u540d a.a.com \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

\n" }, { "author": { "url": "member/MrMike", "name": "MrMike", "avatar": "https://cdn.v2ex.com/gravatar/3a9821ae5f3bb46a668b8268715f0ad7?s=73&d=retro" }, "url": "t/400118", "date_modified": "2017-10-24T01:42:17+00:00", "content_html": "<VirtualHost *:80>\r
ServerAdmin demo@example.com\r
DocumentRoot /mnt/www/example\r
ServerName demo.example.com\r
ServerAlias demo.example.com *.demo.example.com\r
ErrorLog logs/demo-example-error_log\r
CustomLog logs/demo-example-access_log common\r
<Directory "/mnt/www/example">\r
Options Indexes FollowSymLinks MultiViews ExecCGI\r
AllowOverride All\r
Require all granted\r
</Directory>\r
</VirtualHost>\r
\r
\u8fd9\u662f\u4e00\u4e2a\u9879\u76ee\u7684\u57df\u540d\u914d\u7f6e\uff0c\u4f46\u662f\u8bbf\u95ee login.demo.example.com \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
\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": "t/400118" }, { "author": { "url": "member/chinaglwo", "name": "chinaglwo", "avatar": "https://cdn.v2ex.com/avatar/c8bd/2554/96069_large.png?m=1511488762" }, "url": "t/392581", "date_modified": "2017-09-21T08:14:24+00:00", "content_html": "

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

\n

httpd.conf \u91cc\u9762\u7684\u914d\u7f6e\u662f\n<VirtualHost :80>\nDocumentRoot /www/www/\nProxyPassMatch ^/(..php)$ fcgi://127.0.0.1:9000/www/www/$1\nDirectoryIndex index.html index.php\n</virtualhost>

\n

\u6bd4\u5982\u5728.htaccess \u4e2d\u5199\u5165\n<Files \"wp-login.php\">\nRequire all denied\n</files>

\n

\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

\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": "t/392581" }, { "author": { "url": "member/zzw1998", "name": "zzw1998", "avatar": "https://cdn.v2ex.com/avatar/09c0/1c09/221956_large.png?m=1728016351" }, "url": "t/388181", "title": "\u5982\u4f55\u5229\u7528 Apache rewrite \u9690\u6027\u8df3\u8f6c", "id": "t/388181", "date_published": "2017-09-04T15:00:55+00:00", "content_html": "

\u9875\u9762\u5730\u5740\u662f abc.com/xxx.php \uff0c\u60f3\u8ba9\u8bbf\u95ee xxx.abc.com \u7b49\u6548\u4e8e\u8bbf\u95ee abc.com/xxx.php \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

\n" }, { "author": { "url": "member/xiaoyanbot", "name": "xiaoyanbot", "avatar": "https://cdn.v2ex.com/avatar/1302/075b/224240_large.png?m=1654130826" }, "url": "t/387233", "title": "\u8bf7\u6559 Apache \u4f2a\u9759\u6001\u89c4\u5219\u7684 2 \u6761\u89c4\u5219 \u7684\u8bf7\u6559", "id": "t/387233", "date_published": "2017-08-31T09:25:44+00:00", "content_html": "

\u7b2c\u4e00\u6761\u95ee\u9898\uff1a

\n
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
\n

\u7b2c\u4e8c\u6761\u95ee\u9898\uff1a

\n
 RewriteRule ^(.*)$ index.php [L,E=PATH_INFO:$1]\n
\n

E=PATH_INFO:$1 \u8fd9\u4e2a\u5565\u610f\u601d\uff1f

\n" }, { "author": { "url": "member/apache2error", "name": "apache2error", "avatar": "https://cdn.v2ex.com/avatar/ebce/d317/247805_large.png?m=1502335476" }, "url": "t/381875", "title": "apache2.4.10 configured -- resuming normal operations", "id": "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
\u5b89\u88c5\u4e86\u7528\u547d\u4ee4\u5b89\u88c5\u4e86 apache2\r
\u53d1\u73b0\u65e0\u6cd5\u901a\u8fc7 ip \u8bbf\u95ee apache \u5b89\u88c5\u6210\u529f\u9875\u9762\r
\u770b\u65e5\u5fd7\u51fa\u73b0\r
apache2.4.10 configured -- resuming normal operations" }, { "author": { "url": "member/angelsky11", "name": "angelsky11", "avatar": "https://cdn.v2ex.com/gravatar/78aada321c08c13d552e0ee63788a982?s=73&d=retro" }, "url": "t/373561", "title": "\u8bf7\u95ee\u5982\u4f55\u8bbe\u7f6e\u6587\u4ef6\u5939\u6743\u9650\u4f7f vsftpd \u548c apache \u76ee\u5f55\u5e76\u5b58", "id": "t/373561", "date_published": "2017-07-06T11:20:48+00:00", "content_html": "

\u5728\u81ea\u5df1\u7684 ubuntu vps \u91cc\u7ed9\u670b\u53cb\u5f00\u4e86\u4e2a ftp

\n

ftp \u6839\u76ee\u5f55\u8bbe\u7f6e\u4e3a /var/www/username
\n\u6743\u9650\u7ed9\u4e86 username:www-data

\n

\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

\n

\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

\n

\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

\n

\u5e0c\u671b\u61c2\u884c\u7684\u5927\u4f6c\u4eec\u6307\u5f15\u6307\u5f15

\n" }, { "author": { "url": "member/fengtalk", "name": "fengtalk", "avatar": "https://cdn.v2ex.com/avatar/b319/a27a/108049_large.png?m=1581768159" }, "url": "t/364818", "title": "\u6df1\u591c\u8bf7\u6559\u4e00\u4e2a Apache \u7684 Rewrite \u89c4\u5219", "id": "t/364818", "date_published": "2017-05-30T18:22:58+00:00", "content_html": "\u8f93\u5165 domain.com/py?cid=\r
\u8bbf\u95ee\u7684\u8fd8\u662f domain.com/py?cid=\r
\u8f93\u5165 domain.com/py?cid=1234(\u4efb\u4e00\u6570\u5b57)\r
\u8bbf\u95ee example.com/py?cid=1234 \u4efb\u4e00\u6570\u5b57)\r
\r
\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": "member/vipper", "name": "vipper", "avatar": "https://cdn.v2ex.com/avatar/1f42/b0a2/219839_large.png?m=1500888813" }, "url": "t/355243", "title": "Apache \u914d\u7f6e Rewrite \u91cd\u5199\u89c4\u5219\u95ee\u9898", "id": "t/355243", "date_published": "2017-04-16T11:21:27+00:00", "content_html": "

\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

\n

\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

\n" }, { "author": { "url": "member/toslink", "name": "toslink", "avatar": "https://cdn.v2ex.com/gravatar/55799ab13f714dd9297d0ffd96dc2468?s=73&d=retro" }, "url": "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": "t/352646", "date_published": "2017-04-05T06:17:21+00:00", "content_html": "

\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

\n" }, { "author": { "url": "member/hiboshi", "name": "hiboshi", "avatar": "https://cdn.v2ex.com/avatar/2c9b/5123/86177_large.png?m=1657382791" }, "url": "t/350223", "title": "\u8bf7\u6559\u4e00\u4e2a\u91cd\u5199\u89c4\u5219\u95ee\u9898", "id": "t/350223", "date_published": "2017-03-25T04:25:35+00:00", "content_html": "
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
\n

\u5f53\u6211\u4f7f\u7528 80 \u7aef\u53e3\u5e76\u4e14 URI \u4e0d\u4e3a /aaa/bbb \u7684\u65f6\u5019 \u4e0d\u8df3\u8f6c https

\n

\u8fd9\u6837\u5199\u600e\u4e48\u76f4\u63a5\u8df3\u5230 https://www.test.com/index.php \u4e0a\u9762\u4e86\uff1f

\n" }, { "author": { "url": "member/Totato5749", "name": "Totato5749", "avatar": "https://cdn.v2ex.com/gravatar/20c104c6a89dcfe0d76f9f8860fc41da?s=73&d=retro" }, "url": "t/343777", "title": "\u6c42\u6559\u4e00\u4e2a htaccess \u5199\u6cd5", "id": "t/343777", "date_published": "2017-02-28T04:06:44+00:00", "content_html": "

\u60f3\u8981\u5b9e\u73b0\u7684\u9700\u6c42\uff1a

\n
    \n
  1. http://www.example.com
  2. \n
  3. http://example.com
  4. \n
  5. https://www.example.com
  6. \n
  7. https://example.com\n\u4ee5\u4e0a\u56db\u4e2a\u94fe\u63a5\u5747\u8df3\u8f6c\u5230 https://example.com \uff08 http \u4e0e https \u533a\u522b\uff0c\u6709\u65e0 www \u533a\u522b\uff09
  8. \n
\n

\u6c42\u5927\u795e\u6307\u70b9

\n" }, { "author": { "url": "member/cloudL", "name": "cloudL", "avatar": "https://cdn.v2ex.com/avatar/74b7/c28d/215021_large.png?m=1487058482" }, "url": "t/340664", "title": "Apache rewrite \u90e8\u5206\u7ec6\u8282", "id": "t/340664", "date_published": "2017-02-15T07:48:48+00:00", "content_html": "

\u591a\u4e2a.htaccess \u5339\u914d\u7684\u4f18\u5148\u7ea7

\n

\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

\n

\u6839\u8def\u5f84\u4e0b\uff1a

\n

RewriteEngine On

\n

RewriteCond %{REQUEST_FILENAME} -s [OR]

\n

RewriteCond %{REQUEST_FILENAME} -l [OR]

\n

RewriteCond %{REQUEST_FILENAME} -d

\n

RewriteRule ^.*$ - [L]

\n

RewriteRule ^.*$ https://baidu.com [R=301,L]

\n

test \u8def\u5f84\u4e0b\uff1a

\n

RewriteEngine On

\n

RewriteCond %{REQUEST_FILENAME} -s [OR]

\n

RewriteCond %{REQUEST_FILENAME} -l [OR]

\n

RewriteCond %{REQUEST_FILENAME} -d

\n

RewriteRule ^.*$ - [L]

\n

RewriteRule ^.*$ https://bing.com [R=301,L]

\n

\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.

\n

\u7f57\u5217\u4e00\u4e9b\u7ec6\u8282

\n

$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:

\n

RewriteRule backreferences

\n

RewriteCond backreferences

\n

RewriteMap expansions 3

\n

Server-Variables 4

\n

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

\n

\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

\n

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$.

\n

\u4ee5\u540e\u518d\u8865\u5145\u3002\u3002\u3002\u3002\u3002

\n" }, { "author": { "url": "member/enenaaa", "name": "enenaaa", "avatar": "https://cdn.v2ex.com/avatar/7151/5aec/195724_large.png?m=1484707885" }, "url": "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
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
\r
client denied by server configuration: /var/www/html/application/views/common.css\r
\r
.htaccess \u6587\u4ef6\u914d\u7f6e\u5982\u4e0b\r
\r
<IfModule mod_rewrite.c>\r
\r
\tRewriteEngine On\r
\r
\tRewriteBase /\r
\r
\tRewriteCond %{REQUEST_FILENAME} !-d\r
\r
\tRewriteCond %{REQUEST_FILENAME} !-f\r
\r
\tRewriteRule ^(.*)$ index.php/$1 [L]\r
\r
</IfModule>\r
\r
conf \u6587\u4ef6\u76f8\u5173\u914d\u7f6e\u5982\u4e0b\r
\r
<Directory "/var/www/html">\r
\r
Options Indexes FollowSymLinks\r
\r
AllowOverride All\r
\r
Require all granted\r
</Directory>\r
\r
\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": "t/317599" }, { "author": { "url": "member/nonozone", "name": "nonozone", "avatar": "https://cdn.v2ex.com/avatar/d81f/9c1b/345_large.png?m=1775997596" }, "url": "t/315344", "title": "\u8bf7\u6559\u4e00\u4e2a.htaccess \u7684\u95ee\u9898\uff0c\u89c4\u5219\u5bfc\u81f4 url \u91cd\u590d\u4e86", "id": "t/315344", "date_published": "2016-10-25T07:51:08+00:00", "content_html": "

\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

\n

\u4f7f\u7528\u7684.htaccess \u89c4\u5219\u662f\u5b98\u65b9\u63d0\u4f9b\u7684

\n

https://github.com/symphonycms/symphony-2/blob/master/install/includes/htaccess.txt

\n

\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 /abc.com/

\n

\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 eyesion.com \uff0c\u8fdb\u53bb\u4e4b\u540e\u968f\u4fbf\u8bbf\u95ee\u4e00\u4e2a\u94fe\u63a5\uff0c url \u90fd\u53d8\u6210\u4e86\nhttp://www.eyesion.com/eyesion.com/eyesion.com/eyesion.com/index.php/?symphony-page=eyesion.com/eyesion.com/eyesion.com/eyesion.com/index.php/&

\n

\u8fd9\u6837\u7684\uff0c\u60f3\u95ee\u4e0b\uff0c\u8fd9\u4e2a\u95ee\u9898\u8981\u600e\u4e48\u89e3\u51b3\uff0c\u8c22\u8c22\u3002

\n" }, { "author": { "url": "member/linus", "name": "linus", "avatar": "https://cdn.v2ex.com/gravatar/d76a42576bdfbcceb5ccba6d78e7cca9?s=73&d=retro" }, "url": "t/309959", "date_modified": "2016-09-30T04:07:05+00:00", "content_html": "\u5916\u7f51\u2014\u9632\u706b\u5899\u2014> Apache\uff08\u7f51\u6865\uff09\u2014\u2014>\u4ea4\u6362\u673a\u2014\u2014>\u4e00\u5806WEB\u670d\u52a1\u5668\r
############### |####################### |\r
############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": "t/309959" }, { "author": { "url": "member/linus", "name": "linus", "avatar": "https://cdn.v2ex.com/gravatar/d76a42576bdfbcceb5ccba6d78e7cca9?s=73&d=retro" }, "url": "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": "t/309511", "date_published": "2016-09-28T06:17:51+00:00", "content_html": "" }, { "author": { "url": "member/glxin", "name": "glxin", "avatar": "https://cdn.v2ex.com/avatar/259c/2898/157313_large.png?m=1453973557" }, "url": "t/293602", "title": "\u56f0\u6270\u6211\u597d\u4e45\u7684 Tomcat \u7ba1\u7406\u9875\u9762 403", "id": "t/293602", "date_published": "2016-07-19T15:54:46+00:00", "content_html": "

\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

\n" }, { "author": { "url": "member/wyx", "name": "wyx", "avatar": "https://cdn.v2ex.com/avatar/9c69/47bd/10317_large.png?m=1350897379" }, "url": "t/292438", "title": "\u4eca\u5929\u67e5\u770b\u4e86\u4e0b access.log \u53d1\u73b0\u4e00\u4e9b\u5947\u602a\u7684\u4e1c\u897f", "id": "t/292438", "date_published": "2016-07-14T04:29:06+00:00", "content_html": "

23.251.51.125 - - [14/Jul/2016:12:26:06 +0800] \"GET http://www.proxy-listen.de/azenv.php 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 www.baidu.com:443 HTTP/1.0\" 405 731 \"-\" \"-\"\n23.251.51.125 - - [14/Jul/2016:12:26:07 +0800] \"\\x80\\x98\\x01\\x03\\x01\" 400 0 \"-\" \"-\"

\n

\u662f\u4e0d\u662f\u88ab\u6302\u9a6c\u4e86\u5440\uff1f

\n" } ] } ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86