{
  "version": "https://jsonfeed.org/version/1", 
  "title": "Caddy", 
  "description": "\u4e00\u4e2a\u8f7b\u91cf\u7684\uff0c\u73b0\u4ee3\u7684 web \u670d\u52a1\u5668\u8f6f\u4ef6", 
  "home_page_url": "https://www.v2ex.com/go/caddy", 
  "feed_url": "https://www.v2ex.com/feed/caddy.json", 
  "icon": "https://cdn.v2ex.com/navatar/f47d/0ad3/904_large.png?m=1584421193", 
  "favicon": "https://cdn.v2ex.com/navatar/f47d/0ad3/904_normal.png?m=1584421193", 
  "items": [
    {
      "author": {
        "url": "https://www.v2ex.com/member/SQLException", 
        "name": "SQLException", 
        "avatar": "https://cdn.v2ex.com/avatar/026c/20de/379922_large.png?m=1673930496"
      }, 
      "url": "https://www.v2ex.com/t/891910", 
      "title": "\u5355\u4f4d\u76ee\u524d\u4e1a\u52a1\u90fd\u662f nginx+\u624b\u52a8\u64cd\u4f5c acme \u7eed\u671f\uff0c\u6211\u60f3\u7ed9\u5168\u6574\u6210\u7528 Caddy\u3002\u76ee\u524d\u8bd5\u7740\u6539\u4e86\u4e00\u4e2a\u6d41\u91cf\u5c0f\u7684\u4e1a\u52a1\u6682\u65f6\u6ca1\u53d1\u73b0\u6709\u4ec0\u4e48\u5f02\u5e38\u3002\u8bd5\u95ee\uff1a Caddy2 \u80fd\u7528\u4e8e\u6b63\u7ecf\u7684\u751f\u4ea7\u73af\u5883\u5417", 
      "id": "https://www.v2ex.com/t/891910", 
      "date_published": "2022-11-01T15:03:38+00:00", 
      "content_html": ""
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/azev", 
        "name": "azev", 
        "avatar": "https://cdn.v2ex.com/gravatar/f21a89989714d9a010856e3783923299?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/887026", 
      "date_modified": "2022-10-14T14:43:10+00:00", 
      "content_html": "\u90a3\u8fd9\u65f6 caddy \u4f1a\u4e0d\u4f1a\u53bb letsencrypt \u7533\u8bf7\u8fd9\u4e2a\u57df\u540d\u7684\u8bc1\u4e66\uff1f<br />\u8fd9\u4e2a\u4e00\u76f4\u6709\u70b9\u7cca\u6d82", 
      "date_published": "2022-10-14T14:42:29+00:00", 
      "title": "hosts \u6587\u4ef6\u4e2d\u6307\u5b9a\u57df\u540d\u5230 127.0.0.1,https \u8bbf\u95ee\u672c\u673a caddy \u642d\u5efa\u7684 web \u7f51\u7ad9", 
      "id": "https://www.v2ex.com/t/887026"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/jsjcjsjc", 
        "name": "jsjcjsjc", 
        "avatar": "https://cdn.v2ex.com/gravatar/13d33b038f89a9ed0ad29bd412fbbdc0?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/869704", 
      "date_modified": "2022-07-30T15:18:47+00:00", 
      "content_html": "\u770b\u4e86\u8fd9\u4e2a\u6559\u7a0b,<a target=\"_blank\" href=\"https://forum.tinyserve.com/d/11-naiveproxy-https-switchyomega\" rel=\"nofollow noopener\">https://forum.tinyserve.com/d/11-naiveproxy-https-switchyomega</a><br />\u4f46\u662f caddy \u7684\u914d\u7f6e\u6587\u6863\u4e00\u76f4\u62a5\u9519\u54c8~~\u7b2c\u4e00\u6b21\u7528 caddy \u662f\u5728\u6ca1\u5934\u7eea\u3002<br />'''<br />:443, <a target=\"_blank\" href=\"http://domain.com\" rel=\"nofollow noopener\">domain.com</a><br />tls admin@domain.com<br />route {<br />  forward_proxy {<br />    basic_auth user pass<br />    hide_ip<br />    hide_via<br />    probe_resistance <a target=\"_blank\" href=\"http://www.baidu.com\" rel=\"nofollow noopener\">www.baidu.com</a><br />  }<br />  file_server { root /var/www/html }<br />}<br />'''<br /><br />\u62a5\u9519\u5982\u4e0b<br />'''<br />OLDPWD=/root<br />2022/07/30 14:32:35.827 INFO    using provided configuration    {\"config_file\": \"/etc/caddy/Caddyfile\", \"config_adapter\": \"\"}<br />run: adapting config using caddyfile: /etc/caddy/Caddyfile:40 - Error during parsing: Unexpected '{}' at end of line<br />'''<br /><br />\u611f\u8c22", 
      "date_published": "2022-07-30T15:18:25+00:00", 
      "title": "\u8fd9\u4e2a\u5173\u4e8e naiveproxy \u914d\u7f6e\u5173\u4e8e\u548b\u5199\u54c8", 
      "id": "https://www.v2ex.com/t/869704"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/azev", 
        "name": "azev", 
        "avatar": "https://cdn.v2ex.com/gravatar/f21a89989714d9a010856e3783923299?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/837589", 
      "date_modified": "2022-03-03T12:32:01+00:00", 
      "content_html": "\u6709\u4e2a\u8001\u7cfb\u7edf <a target=\"_blank\" href=\"http://asp.net\" rel=\"nofollow noopener\">asp.net</a> \u5f00\u53d1\u7684 <br />\u73b0\u5728\u8981\u8fc1\u79fb\u5230\u65b0\u670d\u52a1\u5668 \u540c\u65f6\u56e0\u4e3a caddy \u5bf9 https \u5e94\u7528\u65b9\u4fbf <br />\u6253\u7b97\u7528 caddy \u4f46\u662f\u4e0d\u77e5\u9053\u8fd9\u6837\u7ec4\u5408\u80fd\u4e0d\u80fd\u884c <br /><br />google \u4e86\u4e00\u628a caddy+<a target=\"_blank\" href=\"http://asp.net\" rel=\"nofollow noopener\">asp.net</a> \u4e5f\u6ca1\u627e\u5230\u4ec0\u4e48\u8d44\u6599 \u90fd\u662f <a target=\"_blank\" href=\"http://asp.net\" rel=\"nofollow noopener\">asp.net</a> core \u7684 \u90a3\u4e2a <a target=\"_blank\" href=\"http://asp.net\" rel=\"nofollow noopener\">asp.net</a> core \u5e94\u8be5\u662f\u53ef\u4ee5", 
      "date_published": "2022-03-03T01:34:53+00:00", 
      "title": "caddy \u80fd\u4e0d\u80fd\u8ddf asp.net \u7ec4\u5408\u5efa\u7ad9\uff1f", 
      "id": "https://www.v2ex.com/t/837589"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/ysicing", 
        "name": "ysicing", 
        "avatar": "https://cdn.v2ex.com/avatar/cba2/dc20/87080_large.png?m=1757085897"
      }, 
      "url": "https://www.v2ex.com/t/799033", 
      "title": "\u5199\u4e86\u4e2a Caddy2 \u63d2\u4ef6 geocn \u7528\u4e8e\u8bc6\u522b\u4e2d\u56fd\u5927\u9646 ip", 
      "id": "https://www.v2ex.com/t/799033", 
      "date_published": "2021-08-31T05:50:39+00:00", 
      "content_html": "<p>geocn \u63d2\u4ef6\u7528\u9014\u5c31\u662f\u8bc6\u522b ip \u662f\u5426\u4e3a\u5927\u9646 ip\uff0c\u7136\u540e\u505a\u4e9b\u4ec0\u4e48\u4e8b\u3002</p>\n<p>\u6570\u636e\u6e90\u6765\u81ea<a href=\"https://github.com/Hackl0us/GeoIP2-CN\" rel=\"nofollow\">Hackl0us/GeoIP2-CN</a></p>\n<p>\u6784\u5efa\u65b9\u5f0f:</p>\n<pre><code class=\"language-bash\">xcaddy build --with github.com/ysicing/caddy2-geocn\n</code></pre>\n<p>\u4f7f\u7528\u65b9\u5f0f;</p>\n<pre><code>    @geofilter {\n        geocn {\n            db_file \"./Country.mmdb\"\n        }\n    }\n    \n    file_server @geofilter {\n       # \u5927\u9646 ip \n    }\n    file_server {\n       # \u5927\u9646 ip \u975e\u5927\u9646 ip\n    }\n</code></pre>\n<p>\u6d4b\u8bd5:</p>\n<pre><code class=\"language-bash\">docker run -itd 80:80 ghcr.io/ysicing/caddy2-geocn:latest\n</code></pre>\n<p>\u5e94\u7528\u5b9e\u4f8b <a href=\"https://ysicing.me\" rel=\"nofollow\">\u6211\u7684\u535a\u5ba2</a>, \u5177\u4f53\u535a\u5ba2\u914d\u7f6e\u53ef\u4ee5\u770b<a href=\"https://github.com/ysicing/devops-handbook/tree/master/scripts/caddy\" rel=\"nofollow\">github</a> </p>\n<hr/>\n<p>\u8bdd\u8bf4 caddy2 \u771f\u7684\u5f88\u96be\u7528\u76f8\u6bd4\u8f83 v1 \u7248\u672c, \u800c\u4e14\u63d2\u4ef6\u6587\u6863\u5c11\u7684\u53ef\u601c\u3002<br/></p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/fy", 
        "name": "fy", 
        "avatar": "https://cdn.v2ex.com/avatar/a708/9a93/21834_large.png?m=1676720515"
      }, 
      "url": "https://www.v2ex.com/t/762951", 
      "date_modified": "2021-03-18T11:19:08+00:00", 
      "content_html": "<h3>0.</h3>\n<p>\u4f7f\u7528 caddy \u7684\u539f\u56e0\u662f\u6709\u81ea\u52a8\u66f4\u65b0 https \u8bc1\u4e66\u3002</p>\n<p>\u7f51\u7edc\u7ed3\u6784\u5f88\u7b80\u5355\uff0c\u524d\u9762\u6709\u4e00\u4e2a\u57df\u540d\uff0ccaddy \u53cd\u5411\u4ee3\u7406\u8f6c\u7ed9\u54cd\u5e94\u7a0b\u5e8f\u3002</p>\n<h3>1.</h3>\n<p>\u5148\u662f\u4f7f\u7528\u4e03\u725b\uff0c\u7136\u540e\u53d1\u73b0\u534a\u5929\u8fc7\u4e0d\u4e86\u6821\u9a8c\uff0c\u4e00\u76f4\u5728\u90e8\u7f72\u4e2d\uff0c\u6211\u4eec\u4ee5\u4e3a\u662f\u4e03\u725b\u4e0d\u884c\u3002</p>\n<p>\u52a0\u4e0a\u4e03\u725b\u7684\u81ea\u5b9a\u4e49\u914d\u7f6e\u9009\u9879\u5f88\u5c11\uff0c\u4e8e\u662f\u6362\u817e\u8baf\u4e91 CDN \u3002</p>\n<p>\u7136\u540e\u53c8\u8bd5\uff0c\u53d1\u73b0\u8981\u4e48\u4e0d\u884c(403)\uff0c\u8981\u4e48\u91cd\u5b9a\u5411\u5230\u4e86\u670d\u52a1\u5668\u5185\u90e8\u57df\u540d(\u8fd9\u4e2a\u57df\u540d\u53ef\u4ee5\u76f4\u63a5 ping \u5230\u670d\u52a1\u5668 IP)\u3002</p>\n<h3>2.</h3>\n<p>\u968f\u540e\uff0c\u6211\u4eec\u5173\u95ed\u4e86\u81ea\u52a8 https \u91cd\u5b9a\u5411\uff0c\u7ec8\u4e8e\u4e0d\u4f1a\u66b4\u9732\u5185\u90e8\u57df\u540d\u4e86\u3002</p>\n<p>\u4f46\u73b0\u5728\u4f1a\u7a33\u5b9a\u5f97\u5230\u4e00\u4e2a 403 \u3002</p>\n<h3>3.</h3>\n<p>\u628a\u56de\u6e90\u8bf7\u6c42\u65b9\u5f0f\u6539\u4e3a\u201c\u59cb\u7ec8\u4f7f\u7528 HTTP\u201d\uff0c\u5e76\u4e14\u5199\u4e86\u4e00\u4e2a\u5c0f\u670d\u52a1\u811a\u672c\u6d4b\u8bd5\u3002</p>\n<p>\u53d1\u73b0\u4e86\u8fd9\u6837\u7684\u95ee\u9898\uff1a</p>\n<p><strong>Caddy \u83b7\u5f97\u4e86 CDN \u8f6c\u53d1\u6765\u7684\u8bf7\u6c42\u4e4b\u540e\uff0c\u6ca1\u6709\u8f6c\u53d1\u7ed9\u4e0a\u6e38\uff0c\u76f4\u63a5\u8fd4\u56de\u4e86 403</strong></p>\n<p>\u968f\u540e\u5c31\u662f apt install nginx\uff0c10 \u5206\u949f\u4e4b\u540e\u5c31\u6b63\u5e38\u5de5\u4f5c\u4e86\u3002</p>\n<p>\u867d\u7136\u4e0d\u6392\u9664\u53ef\u80fd\u662f\u817e\u8baf\u4e91\u548c\u4e03\u725b\u7684\u95ee\u9898\uff0c\u4f46\u6211\u8fd8\u662f\u5bf9 caddy \u611f\u5230\u8d39\u89e3\uff0c\u5305\u62ec\u8981\u6c42\u914d\u7f6e\u9879\u7684\u987a\u5e8f\u8981\u6c42\u4e5f\u662f\uff0c\u8ba9\u4eba\u4e00\u5934\u96fe\u6c34\u7684\u914d\u7f6e\u9519\u8bef\u63d0\u793a\u4e5f\u662f\u3002</p>\n<h4>PS. \u9644\u4e0a\u914d\u7f6e\u548c\u65e5\u5fd7\uff0c\u4ee5\u4f9b\u53c2\u8003\uff1a</h4>\n<p>\u914d\u7f6e\uff1a</p>\n<pre><code>http://xxx.q2test.cn, https://xxx.q2test.cn {\n    reverse_proxy localhost:3000\n}\n</code></pre>\n<p>\u8bf7\u6c42\u5931\u8d25\uff0c\u8fd4\u56de 403\uff1a</p>\n<pre><code>Mar 18 18:26:40 iZbp1a0zoyd681g7u3kpzsZ caddy[522704]: {\"level\":\"error\",\"ts\":1616063200.543761,\"logger\":\"http.log.access.log0\",\"msg\":\"handled request\",\"request\":{\"remote_addr\":\"220.194.88.217:21901\",\"proto\":\"HTTP/1.1\",\"method\":\"GET\",\"host\":\"xxx.q2test.cn\",\"uri\":\"/\",\"headers\":{\"Upgrade-Insecure-Requests\":[\"1\"],\"Accept\":[\"text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9\"],\"X-Nws-Log-Uuid\":[\"18288152216455359445\"],\"X-Tencent-Ua\":[\"Qcloud\"],\"X-Forwarded-Proto\":[\"http\"],\"User-Agent\":[\"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36\"],\"Accept-Language\":[\"zh-CN,zh;q=0.9\"],\"D541340abd8120abcb55ffb8fc48b3ce\":[\"tag\"],\"X-Forwarded-For\":[\"118.113.4.159\"],\"X-Daa-Tunnel\":[\"hop_count=1\"]}},\"common_log\":\"220.194.88.217 - - [18/Mar/2021:18:26:40 +0800] \\\"GET / HTTP/1.1\\\" 403 0\",\"duration\":0.000036437,\"size\":0,\"status\":403,\"resp_headers\":{\"Server\":[\"Caddy\"]}}\n</code></pre>\n<p>\u4e0d\u901a\u8fc7 cdn \u8bf7\u6c42\u6210\u529f\uff1a</p>\n<pre><code>Mar 18 18:26:59 iZbp1a0zoyd681g7u3kpzsZ caddy[522704]: {\"level\":\"info\",\"ts\":1616063219.6977851,\"logger\":\"http.log.access.log0\",\"msg\":\"handled request\",\"request\":{\"remote_addr\":\"117.113.2.139:57097\",\"proto\":\"HTTP/1.1\",\"method\":\"GET\",\"host\":\"xxx.q2test.cn\",\"uri\":\"/\",\"headers\":{\"Connection\":[\"keep-alive\"],\"Upgrade-Insecure-Requests\":[\"1\"],\"User-Agent\":[\"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36\"],\"Accept-Language\":[\"zh-CN,zh;q=0.9\"],\"If-None-Match\":[\"\\\"e02aa1b106d5c7c6a98def2b13005d5b84fd8dc8\\\"\"],\"Cache-Control\":[\"max-age=0\"],\"Accept\":[\"text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9\"],\"Accept-Encoding\":[\"gzip, deflate\"]}},\"common_log\":\"117.113.2.139 - - [18/Mar/2021:18:26:59 +0800] \\\"GET / HTTP/1.1\\\" 304 0\",\"duration\":0.001917656,\"size\":0,\"status\":304,\"resp_headers\":{\"Server\":[\"Caddy\",\"TornadoServer/6.1\"],\"Date\":[\"Thu, 18 Mar 2021 10:26:59 GMT\"],\"Etag\":[\"\\\"e02aa1b106d5c7c6a98def2b13005d5b84fd8dc8\\\"\"]}}\n</code></pre>\n", 
      "date_published": "2021-03-18T11:17:57+00:00", 
      "title": "Caddy \u5f88\u53ef\u80fd\u65e0\u6cd5\u548c cdn \u5171\u7528\uff0c\u6d6a\u8d39\u4e86\u4e24\u4e2a\u4eba\u4e00\u4e0b\u5348\u4e4b\u540e\u6362\u4e86 nginx \u82b1 5 \u5206\u949f\u641e\u597d\u4e86 (\u817e\u8baf\u4e03\u725b CDN \u76f8\u5173)", 
      "id": "https://www.v2ex.com/t/762951"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/silvernoo", 
        "name": "silvernoo", 
        "avatar": "https://cdn.v2ex.com/avatar/2169/a2cc/21760_large.png?m=1773800022"
      }, 
      "url": "https://www.v2ex.com/t/676409", 
      "date_modified": "2020-05-28T10:47:10+00:00", 
      "content_html": "\u8981\u628a 127.0.0:8080/\u8f6c\u53d1\u5230 ip:port/app/\u4e0b\uff0c\u8c22\u8c22\u6307\u6559", 
      "date_published": "2020-05-28T10:46:54+00:00", 
      "title": "\u8bf7\u6559\u4e00\u4e2a caddy2 \u7684\u53cd\u4ee3\u89c4\u5219", 
      "id": "https://www.v2ex.com/t/676409"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/skt041959", 
        "name": "skt041959", 
        "avatar": "https://cdn.v2ex.com/avatar/c626/eb33/109589_large.png?m=1584116410"
      }, 
      "url": "https://www.v2ex.com/t/672268", 
      "date_modified": "2020-05-16T02:30:47+00:00", 
      "content_html": "<p>\u6bd4\u5982 127.0.0.1/e/ \u53ef\u4ee5\u8bbf\u95ee E:\\ , 127.0.0.1/d/ \u53ef\u4ee5\u8bbf\u95ee D:\\<br/>\nstackoverflow \u4e0a Caddy \u7684\u95ee\u9898\u771f\u7684\u592a\u5c11\u4e86\uff0c\u5b8c\u5168\u4e0d\u6bd4 nginx</p>\n<p>\u6211\u50cf\u8fd9\u6837\u5199\u597d\u50cf\u4e0d\u592a\u884c</p>\n<pre><code class=\"language-json\">  \"apps\": {\n    \"http\": {\n      \"servers\": {\n        \"static\": {\n          \"idle_timeout\": 30000000000,\n          \"listen\": [\n            \":80\"\n          ],\n          \"max_header_bytes\": 10240,\n          \"read_header_timeout\": 10000000000,\n          \"routes\": [\n            {\n              \"handle\": [\n                {\n                  \"browse\": {},\n                  \"handler\": \"file_server\",\n                  \"root\": \"e:\"\n                }\n              ],\n              \"match\": [\n                {\n                  \"path\": [\n                    \"/e/*\"\n                  ]\n                }\n              ]\n            }\n          ]\n        }\n      }\n    }\n  }\n</code></pre>\n", 
      "date_published": "2020-05-16T02:29:35+00:00", 
      "title": "Caddy file_server \u600e\u4e48\u6837\u914d\u7f6e\u591a\u4e2a\u76ee\u5f55\uff1f", 
      "id": "https://www.v2ex.com/t/672268"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/Takuron", 
        "name": "Takuron", 
        "avatar": "https://cdn.v2ex.com/avatar/8959/ac62/461113_large.png?m=1720176228"
      }, 
      "url": "https://www.v2ex.com/t/653441", 
      "date_modified": "2020-03-17T01:35:57+00:00", 
      "content_html": "<p>\u6700\u8fd1\u4e0a\u624b\u4e86 caddy\uff0c\u7684\u786e\u662f\u4f18\u5148\u4e3a\u4eba\u7c7b\u8bbe\u8ba1\u7684\u8f6f\u4ef6\u914d\u7f6e\u7b80\u5355\u5230\u5413\u4eba\uff0c\u4e0d\u8fc7\u53ef\u80fd\u6211\u8fd8\u6ca1\u5b8c\u5168\u638c\u63e1\u73b0\u5728\u5076\u5c14\u4f1a\u51fa\u73b0\u670d\u52a1\u5668\u505c\u6b62\u8fd0\u884c\u7684\u95ee\u9898\uff0c\u5916\u52a0\u57fa\u4e8e go \u7684\u786e\u7406\u8bba\u4e0a\u6709\u8fd0\u884c\u6548\u7387\u95ee\u9898\u3002\u4e0d\u77e5\u5176\u80fd\u4e0d\u80fd\u7a33\u5b9a\u627f\u62c5\u7c7b\u4f3c\u4e2a\u4eba\u535a\u5ba2\u8fd9\u79cd\u4efb\u52a1\uff0c\u5e0c\u671b\u7528\u8fc7\u7684 v \u53cb\u7ed9\u70b9\u610f\u89c1\u3002</p>\n", 
      "date_published": "2020-03-17T01:13:37+00:00", 
      "title": "caddy \u80fd\u7a33\u5b9a\u7528\u4e8e\u7b80\u5355\u7684\u751f\u4ea7\u73af\u5883\u4e2d\u5417", 
      "id": "https://www.v2ex.com/t/653441"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/nfroot", 
        "name": "nfroot", 
        "avatar": "https://cdn.v2ex.com/avatar/18f2/7472/191501_large.png?m=1473702873"
      }, 
      "url": "https://www.v2ex.com/t/562247", 
      "title": "\u4e00\u4e2a\u7b80\u6d01\u53c8\u5f3a\u5927\u7684 Caddy\uff0c\u96be\u7528\u8d77\u6765\u4e5f\u4f1a\u8ba9\u4eba\u65e0\u8bed", 
      "id": "https://www.v2ex.com/t/562247", 
      "date_published": "2019-05-08T08:42:52+00:00", 
      "content_html": "Caddy \u771f\u7684\u5f88\u4e0d\u9519\uff0c\u4e2a\u4eba\u7528\u592a\u65b9\u4fbf\u4e86\uff01\u8fd8\u6709\u5404\u79cd\u63d2\u4ef6\u62d3\u5c55\u771f\u662f\u68d2\uff01\u4e0b\u8f7d\u9875\u9762\u52fe\u9009\u63d2\u4ef6\u5c31\u80fd\u4e0b\u8f7d\uff0c\u771f\u65b9\u4fbf\uff01\u56fd\u5185\u6ca1\u5916\u7f51 IP\uff0c80 \u7aef\u53e3\u5c01\u4e86\uff0c\u6ca1\u5173\u7cfb\uff0c\u4e00\u5806 DNS \u63d2\u4ef6\uff0c\u53ef\u4ee5\u81ea\u52a8\u901a\u8fc7 dns \u6765\u9a8c\u8bc1\uff01\u975e\u5e38\u9002\u5408\u56fd\u60c5\u6709\u6728\u6709\uff01\uff08 80 \u7aef\u53e3\u88ab\u5c01\uff0c\u6216\u8005\u5e72\u8106\u6ca1\u6709\u5916\u7f51 IP\uff0c\u65e0\u6cd5\u81ea\u52a8\u8d70 http \u65b9\u5f0f\u901a\u8fc7 SSL \u8bc1\u4e66\u7684\u9a8c\u8bc1\uff0c\u6d41\u884c Windows \u670d\u52a1\u5668\uff09<br /><br />Caddy 1.0 \u53d1\u5e03\u4e86\uff0c\u4e0b\u8f7d\u9875\u9762\u4e00\u4e2a\u63d2\u4ef6\u90fd\u9009\u4e0d\u4e0a\u4e86\uff0c\u9009\u4e0a\u5c31\u544a\u8bc9\u4f60\u4e0b\u8f7d\u4e0d\u4e86\u3002<br /><br /><br /><br />\u4f60\u53ea\u80fd\u4e0b\u8f7d\u4e00\u4e2a\u88f8\u4f53\u7684 Caddy\uff0c\u6ca1\u6709\u63d2\u4ef6\uff0c\u6ca1\u6709\u62d3\u5c55\uff0c\u6ca1\u6709\u8863\u670d\u6ca1\u6709\u88e4\u5b50\uff0c\u53ea\u6709\u88f8\u4f53\u7684 Caddy\uff0c\u4f60\u60f3\u8981 dns \u63d2\u4ef6\u81ea\u52a8\u8fc7 ssl \u9a8c\u8bc1\uff0c\u4e0d\u884c\uff0c\u63d2\u4ef6\u52a0\u4e0a\u53bb\u5c31\u4e0d\u80fd\u4e0b\u8f7d\u4e86\uff0c\u9664\u975e\u81ea\u5df1\u4e0b\u8f7d\u6e90\u7801\u7f16\u8bd1\uff0c\u6211\u5c1d\u8bd5\u4e86\u4e00\u4e0b\u5728 Windows \u5e73\u53f0\u4e0b\u7f16\u8bd1\uff0c\u84dd\u7626\u9999\u83c7\u3002\u3002\u3002\u3002\u6700\u540e\u6b7b\u5728 golang \u4e0b\u8f7d\u5b98\u65b9\u5e93\u7684\u65f6\u5019\u5931\u8d25\uff0c\u8bbe\u7f6e\u4e86 socks \u548c http proxy \u4e5f\u4e0d\u884c\uff08\u6211\u7528\u201c v \u5154 way \u201d\u79d1\u5b66\u4e0a\u7f51\uff09\u3002\u3002\u3002\u3002\u81ea\u5df1\u5728\u5899\u5916\u53c8\u6ca1\u6709 vps\uff0c\u5509\uff0c\u60b2\u50ac\u554a\uff0c\u6298\u817e\u4e00\u5708\u4e0b\u6765\u8fd8\u662f\u653e\u5f03\u4e86\u3002\u3002<br /><br />caddy \u5b98\u65b9\u4ea4\u6d41\u793e\u533a\u4e5f\u662f\u4e00\u5806\u8be2\u95ee\u8fd9\u4e2a\u95ee\u9898\u7684\uff0c\u82f1\u6587\u4e0d\u5927\u61c2\uff0c\u7ffb\u8bd1\u8fc7\u6765\u597d\u50cf\u610f\u601d\u662f caddy \u6539\u53d8\u4e86\u63d2\u4ef6\u76f8\u5173\u7684\u4e1c\u897f\uff0c\u4e8e\u662f\u53ef\u80fd\u9020\u6210\u4e86\u67d0\u4e9b\u63d2\u4ef6\u7684\u4e0d\u517c\u5bb9\uff08\u63d2\u4ef6\u770b\u8d77\u6765\u90fd\u662f\u7b2c\u4e09\u65b9\u4f5c\u8005\u5f00\u53d1\u7684\uff09\u3002\u4f46\u662f\u6211\u5c1d\u8bd5\u8fc7\u5f88\u591a\u63d2\u4ef6\u7684\u7ec4\u5408\uff0c\u6700\u7ec8\u695e\u662f\u6210\u529f\u4e0d\u4e86\u4efb\u4f55\u4e00\u4e2a\uff0c\u4f30\u8ba1\u53ea\u6709\u88f8\u4f53\u624d\u80fd\u4e0b\u8f7d\u3002\u89c2\u671b\u4e86\u597d\u51e0\u5929\uff0c\u5e94\u8be5\u77ed\u671f\u5185\u662f\u65e0\u6cd5\u89e3\u51b3\u4e86\u2026\u2026<br /><br />caddy \u8fd8\u662f\u5f88\u9999\u7684\uff0c\u771f\u7684\u5f88\u7b80\u6d01\u65b9\u4fbf\uff0c\u6211\u6700\u770b\u4e2d\u7684\u8fd8\u662f\u80fd\u591f\u81ea\u52a8 dns \u9a8c\u8bc1\uff0c\u6709\u4e16\u754c\u4e0a\u5927\u90e8\u5206\u77e5\u540d\u7684 dns api \u63d2\u4ef6\u3002\u3002\u3002Linux \u7cfb\u867d\u7136\u6709\u4e00\u5927\u5806\u83b7\u53d6 let's encrypt \u5bb6 SSL \u8bc1\u4e66\u7684\u5de5\u5177\uff0c\u4f46\u662f Windows \u5e73\u53f0\u7684\u5de5\u5177\u592a\u8d2b\u4e4f\u4e86\uff0c\u5df2\u77e5\u7684\u6709 2 \u4e2a\uff0c\u597d\u50cf\u90fd\u80fd\u81ea\u52a8\u5bf9\u63a5 IIS\uff0c\u8d70 http \u9a8c\u8bc1\uff08\u5f88\u663e\u7136\u4e0d\u9002\u5408\u56fd\u5185\u8fd9\u79cd\u5f88\u5e38\u89c1\u7684\u5185\u7f51\u73af\u5883\u548c\u975e 80 \u7aef\u53e3\u670d\u52a1\uff09\uff0c\u4f46\u662f\u80fd\u81ea\u52a8\u5bf9\u63a5 DNS \u670d\u52a1\u5546 API \u7684\uff0c\u4e00\u4e2a\u90fd\u6ca1\u6709\uff0c\u53ea\u770b\u5230 Caddy \u6709\u63d2\u4ef6\u80fd\u5bf9\u63a5\u4e0a DNS \u670d\u52a1\u5546\u3002\u3002\u3002\u3002<br /><br />\u4ed6\u5bb6\u72ec\u7279\u7684\u914d\u7f6e\u65b9\u5f0f\uff0c\u52a0\u4e0a\u5b98\u65b9\u7b80\u6d01\u6709\u5b9e\u4f8b\u7684\u6587\u6863\uff0c\u8fd8\u662f\u5f88\u5bb9\u6613\u61c2\u7684\uff0c\u8fd8\u6709\u6700\u7231\u7684 dns \u63d2\u4ef6\uff0c\u53ef\u60dc\u554a\u7adf\u7136\u7528\u4e0d\u4e86\u3002\u3002\u3002"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/tyzrj766", 
        "name": "tyzrj766", 
        "avatar": "https://cdn.v2ex.com/avatar/33d0/96b6/278145_large.png?m=1768055612"
      }, 
      "url": "https://www.v2ex.com/t/558433", 
      "date_modified": "2019-04-25T00:30:10+00:00", 
      "content_html": "<p><a href=\"https://caddyserver.com/\" rel=\"nofollow\">https://caddyserver.com/</a></p>\n<p><a href=\"https://github.com/mholt/caddy\" rel=\"nofollow\">https://github.com/mholt/caddy</a></p>\n", 
      "date_published": "2019-04-25T00:29:46+00:00", 
      "title": "CaddyServer 1.0 \u5df2\u53d1\u5e03", 
      "id": "https://www.v2ex.com/t/558433"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/blisdom", 
        "name": "blisdom", 
        "avatar": "https://cdn.v2ex.com/gravatar/cdafd3a1c13e844b4194f2d98978010a?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/552683", 
      "title": "caddy \u670d\u52a1\u5668\u8fd4\u56de\u4e00\u4e2a json", 
      "id": "https://www.v2ex.com/t/552683", 
      "date_published": "2019-04-07T06:59:33+00:00", 
      "content_html": "\u5982\u4f55\u914d\u7f6e url \u53ef\u4ee5\u8ba9 caddy \u76f4\u63a5\u8fd4\u56de\u4e00\u4e2a json \u7ed3\u6784"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/caola", 
        "name": "caola", 
        "avatar": "https://cdn.v2ex.com/avatar/ff15/f2a3/79922_large.png?m=1735294903"
      }, 
      "url": "https://www.v2ex.com/t/302641", 
      "title": "Caddy Server \u5df2\u652f\u6301 QUIC \u534f\u8bae\uff0c\u53c8\u53ef\u4ee5\u6298\u817e\u65b0\u6280\u672f\u4e86", 
      "id": "https://www.v2ex.com/t/302641", 
      "date_published": "2016-08-30T03:54:28+00:00", 
      "content_html": "Caddy Server \u5df2\u7ecf\u652f\u6301\u8c37\u6b4c\u57fa\u4e8e UDP \u7684 QUIC \u534f\u8bae\uff0c\u559c\u6b22\u6298\u817e\u65b0\u6280\u672f\u7684\u53f8\u673a\u4eec\uff0c\u53ef\u4ee5\u5f00\u8f66\u4e86\u2026\u2026"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/hiroya", 
        "name": "hiroya", 
        "avatar": "https://cdn.v2ex.com/gravatar/7aaf8b5fd043f740455f0bad76dc5374?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/292885", 
      "date_modified": "2016-07-16T09:45:17+00:00", 
      "content_html": "<p>\u5c1d\u8bd5\u8fc7\u8fd9\u4e1c\u897f\u540e\u53d1\u73b0\u597d\u9ed1\u79d1\u6280\uff0c\u7f51\u4e0a\u76f8\u5173\u7684\u6587\u6863\u53c8\u6bd4\u8f83\u5c11\uff0c\u6240\u4ee5\u5199\u4e86\u4e2a Caddy Server \u7684\u7b80\u6613\u5165\u95e8\u624b\u518c\uff0c\u5982\u679c\u6709\u4ec0\u4e48\u7eb0\u6f0f\u4e0d\u8db3\uff0c\u8fd8\u8bf7\u5404\u4f4d\u83ca\u82e3\u6307\u51fa QwQ</p>\n<p>\u535a\u6587\u5730\u5740 <a href=\"https://emiria.io/post/CaddyServer/\" rel=\"nofollow\">https://emiria.io/post/CaddyServer/</a></p>\n<p>\u8bfa\uff0c\u5c31\u662f\u8fd9\u8d27 <a href=\"https://caddyserver.com\" rel=\"nofollow\">https://caddyserver.com</a>\nOrz..</p>\n", 
      "date_published": "2016-07-16T08:18:24+00:00", 
      "title": "\u4e00\u4e2a Caddy Server \u7684\u7b80\u6613\u5165\u95e8\u624b\u518c\uff0c QwQ", 
      "id": "https://www.v2ex.com/t/292885"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/Livid", 
        "name": "Livid", 
        "avatar": "https://cdn.v2ex.com/avatar/c4ca/4238/1_large.png?m=1776858751"
      }, 
      "url": "https://www.v2ex.com/t/268396", 
      "date_modified": "2016-04-03T16:48:05+00:00", 
      "content_html": "<a target=\"_blank\" href=\"https://caddyserver.com/blog/is-caddy-free\" rel=\"nofollow\">https://caddyserver.com/blog/is-caddy-free</a>\r<br />\r<br />p.s. \u5982\u679c\u4f60\u89c9\u5f97 Nginx \u6216\u8005 Apache \u592a\u590d\u6742\u7684\u8bdd\uff0c\u53ef\u4ee5\u770b\u770b Caddy\uff0c\u4e00\u4e2a\u7528 Go \u5199\u7684\u65b0\u7684 Web \u670d\u52a1\u5668\u8f6f\u4ef6\r<br />\r<br /><a target=\"_blank\" href=\"https://caddyserver.com/\" rel=\"nofollow\">https://caddyserver.com/</a>", 
      "date_published": "2016-04-03T16:46:01+00:00", 
      "title": "Caddy Server \u4f5c\u8005\u5173\u4e8e\u670d\u52a1\u5668\u8f6f\u4ef6\u662f\u5426\u5e94\u8be5\u514d\u8d39\u5199\u7684\u4e00\u7bc7\u6587\u7ae0", 
      "id": "https://www.v2ex.com/t/268396"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/ericls", 
        "name": "ericls", 
        "avatar": "https://cdn.v2ex.com/avatar/d56d/a061/10833_large.png?m=1642479260"
      }, 
      "url": "https://www.v2ex.com/t/206460", 
      "date_modified": "2016-04-03T16:35:05+00:00", 
      "content_html": "Caddy \u662f\u4e00\u4e2a\u5f88\u8212\u670d\u7684 http \u670d\u52a1\u5668\u3002\r<br />\u65e0\u8bba\u662f\u4e13\u4e1a\u7684\u8fd0\u7ef4\u8fd8\u662f\u5076\u5c14\u7528\u5230 http server \u7684\u7528\u6237\u90fd\u5f88\u9002\u5408\u3002\r<br />\u50cf\u7f8e\u5de5 \u524d\u7aef\u5de5\u7a0b\u5e08\u8fd9\u7c7b\u7684\u7528\u6237\u4e5f\u5f88\u9002\u5408\u4f7f\u7528 Caddy\uff0c\u56e0\u4e3a\u53ef\u4ee5\u514d\u53bb\u642d\u5efa Server \u7684\u7e41\u7410\u3002\r<br />\r<br />Caddy \u8fd8\u53ef\u4ee5\u76f4\u63a5\u652f\u6301 markdown \u6587\u4ef6\u5b9e\u65f6\u6e32\u67d3 html \u548c\u66f4\u591a\u7684\u5b9e\u7528\u529f\u80fd\u3002\r<br />\r<br />\u914d\u7f6e\u6587\u4ef6\u5199\u8d77\u6765\u4e5f\u5f88\u987a\u624b\u3002\r<br />\r<br />Caddy\u6709\u4e0d\u6210\u719f\u7684\u654c\u65b9\uff0c\u6bd4\u5982\u914d\u5408 uwsgi \u6211\u8fd8\u6ca1\u641e\u61c2\u80bf\u4e48\u5f04\u3002\u4f46\u662f\u7455\u4e0d\u63a9\u745c\uff0c\u603b\u4e4b\u662f\u4e00\u4e2a\u7ed9\u4eba\u60ca\u559c\u7684\u73a9\u610f\u3002\r<br />\r<br />\u5b98\u65b9\u9879\u76ee\u4e3b\u9875\uff1a <a target=\"_blank\" href=\"http://caddyserver.com\" rel=\"nofollow\">http://caddyserver.com</a>", 
      "date_published": "2015-07-17T11:11:28+00:00", 
      "title": "\u518d\u63a8\u8350\u4e00\u4e0b Caddy HTTP Server\u3002", 
      "id": "https://www.v2ex.com/t/206460"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/loading", 
        "name": "loading", 
        "avatar": "https://cdn.v2ex.com/avatar/7aee/26c3/2719_large.png?m=1720319172"
      }, 
      "url": "https://www.v2ex.com/t/188127", 
      "date_modified": "2016-04-03T16:35:13+00:00", 
      "content_html": "<a target=\"_blank\" href=\"https://caddyserver.com/\" rel=\"nofollow\">https://caddyserver.com/</a>", 
      "date_published": "2015-05-03T08:35:46+00:00", 
      "title": "caddy \u4e00\u4e2a\u53ef\u4ee5\u76f4\u63a5\u5f53\u535a\u5ba2\u7a0b\u5e8f\u7528\u7684 nginx", 
      "id": "https://www.v2ex.com/t/188127"
    }
  ]
}