nezhahq.github.io/assets/guide_q3.md.947f69e3.js

32 lines
6.1 KiB
JavaScript

import{_ as n,c as s,o as a,a as e}from"./app.4f7c959e.js";const g='{"title":"\u53CD\u5411\u4EE3\u7406 gRPC \u7AEF\u53E3\uFF08\u652F\u6301 Cloudflare CDN\uFF09","description":"","frontmatter":{},"headers":[],"relativePath":"guide/q3.md","lastUpdated":1658381742000}',t={},p=e(`<h4 id="\u53CD\u5411\u4EE3\u7406-grpc-\u7AEF\u53E3\uFF08\u652F\u6301-cloudflare-cdn\uFF09" tabindex="-1">\u53CD\u5411\u4EE3\u7406 gRPC \u7AEF\u53E3\uFF08\u652F\u6301 Cloudflare CDN\uFF09 <a class="header-anchor" href="#\u53CD\u5411\u4EE3\u7406-grpc-\u7AEF\u53E3\uFF08\u652F\u6301-cloudflare-cdn\uFF09" aria-hidden="true">#</a></h4><p>\u4F7F\u7528 Nginx \u6216\u8005 Caddy \u53CD\u5411\u4EE3\u7406 gRPC</p><ul><li>Nginx \u914D\u7F6E</li></ul><div class="language-nginx"><pre><code><span class="token directive"><span class="token keyword">server</span></span> <span class="token punctuation">{</span>
<span class="token directive"><span class="token keyword">listen</span> <span class="token number">443</span> ssl http2</span><span class="token punctuation">;</span>
<span class="token directive"><span class="token keyword">listen</span> [::]:443 ssl http2</span><span class="token punctuation">;</span>
<span class="token directive"><span class="token keyword">server_name</span> data.example.com</span><span class="token punctuation">;</span> <span class="token comment"># \u4F60\u7684 Agent \u8FDE\u63A5 Dashboard \u7684\u57DF\u540D</span>
<span class="token directive"><span class="token keyword">ssl_certificate</span> /data/letsencrypt/fullchain.pem</span><span class="token punctuation">;</span> <span class="token comment"># \u4F60\u7684\u57DF\u540D\u8BC1\u4E66\u8DEF\u5F84</span>
<span class="token directive"><span class="token keyword">ssl_certificate_key</span> /data/letsencrypt/key.pem</span><span class="token punctuation">;</span> <span class="token comment"># \u4F60\u7684\u57DF\u540D\u79C1\u94A5\u8DEF\u5F84</span>
<span class="token directive"><span class="token keyword">underscores_in_headers</span> <span class="token boolean">on</span></span><span class="token punctuation">;</span>
<span class="token directive"><span class="token keyword">location</span> /</span> <span class="token punctuation">{</span>
<span class="token directive"><span class="token keyword">grpc_read_timeout</span> <span class="token number">300s</span></span><span class="token punctuation">;</span>
<span class="token directive"><span class="token keyword">grpc_send_timeout</span> <span class="token number">300s</span></span><span class="token punctuation">;</span>
<span class="token directive"><span class="token keyword">grpc_socket_keepalive</span> <span class="token boolean">on</span></span><span class="token punctuation">;</span>
<span class="token directive"><span class="token keyword">grpc_pass</span> grpc://grpcservers</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span>
<span class="token directive"><span class="token keyword">upstream</span> grpcservers</span> <span class="token punctuation">{</span>
<span class="token directive"><span class="token keyword">server</span> localhost:5555</span><span class="token punctuation">;</span>
<span class="token directive"><span class="token keyword">keepalive</span> <span class="token number">1024</span></span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
</code></pre></div><ul><li>Caddy \u914D\u7F6E</li></ul><div class="language-"><pre><code>data.example.com:443 { # \u4F60\u7684 Agent \u8FDE\u63A5 Dashboard \u7684\u57DF\u540D
reverse_proxy {
to localhost:5555
transport http {
versions h2c 2
}
}
}
</code></pre></div><p>Dashboard \u9762\u677F\u7AEF\u914D\u7F6E</p><ul><li>\u9996\u5148\u767B\u5F55\u9762\u677F\u8FDB\u5165\u7BA1\u7406\u540E\u53F0 \u6253\u5F00\u8BBE\u7F6E\u9875\u9762\uFF0C\u5728 <code>\u672A\u63A5\u5165CDN\u7684\u9762\u677F\u670D\u52A1\u5668\u57DF\u540D/IP</code> \u4E2D\u586B\u5165\u4E0A\u4E00\u6B65\u5728 Nginx \u6216 Caddy \u4E2D\u914D\u7F6E\u7684\u57DF\u540D \u6BD4\u5982 <code>data.example.com</code> \uFF0C\u5E76\u4FDD\u5B58\u3002</li><li>\u7136\u540E\u5728\u9762\u677F\u670D\u52A1\u5668\u4E2D\uFF0C\u6253\u5F00 /opt/nezha/dashboard/data/config.yaml \u6587\u4EF6\uFF0C\u5C06 <code>proxygrpcport</code> \u4FEE\u6539\u4E3A Nginx \u6216 Caddy \u76D1\u542C\u7684\u7AEF\u53E3\uFF0C\u6BD4\u5982\u4E0A\u4E00\u6B65\u8BBE\u7F6E\u7684 <code>443</code> \uFF1B\u56E0\u4E3A\u6211\u4EEC\u5728 Nginx \u6216 Caddy \u4E2D\u5F00\u542F\u4E86 SSL/TLS\uFF0C\u6240\u4EE5\u9700\u8981\u5C06 <code>tls</code> \u8BBE\u7F6E\u4E3A <code>true</code> \uFF1B\u4FEE\u6539\u5B8C\u6210\u540E\u91CD\u542F\u9762\u677F\u3002</li></ul><p>Agent \u7AEF\u914D\u7F6E</p><ul><li>\u767B\u5F55\u9762\u677F\u7BA1\u7406\u540E\u53F0\uFF0C\u590D\u5236\u4E00\u952E\u5B89\u88C5\u547D\u4EE4\uFF0C\u5728\u5BF9\u5E94\u7684\u670D\u52A1\u5668\u4E0A\u9762\u6267\u884C\u4E00\u952E\u5B89\u88C5\u547D\u4EE4\u91CD\u65B0\u5B89\u88C5 agent \u7AEF\u5373\u53EF\u3002</li></ul><p>\u5F00\u542F Cloudflare CDN\uFF08\u53EF\u9009\uFF09</p><p>\u6839\u636E Cloudflare gRPC \u7684\u8981\u6C42\uFF1AgRPC \u670D\u52A1\u5FC5\u987B\u4FA6\u542C 443 \u7AEF\u53E3 \u4E14\u5FC5\u987B\u652F\u6301 TLS \u548C HTTP/2\u3002 \u6240\u4EE5\u5982\u679C\u9700\u8981\u5F00\u542F CDN\uFF0C\u5FC5\u987B\u5728\u914D\u7F6E Nginx \u6216\u8005 Caddy \u53CD\u5411\u4EE3\u7406 gRPC \u65F6\u4F7F\u7528 443 \u7AEF\u53E3\uFF0C\u5E76\u914D\u7F6E\u8BC1\u4E66\uFF08Caddy \u4F1A\u81EA\u52A8\u7533\u8BF7\u5E76\u914D\u7F6E\u8BC1\u4E66\uFF09\u3002</p><ul><li>\u767B\u5F55 Cloudflare\uFF0C\u9009\u62E9\u4F7F\u7528\u7684\u57DF\u540D\u3002\u6253\u5F00 <code>\u7F51\u7EDC</code> \u9009\u9879\u5C06 <code>gRPC</code> \u5F00\u5173\u6253\u5F00\uFF0C\u6253\u5F00 <code>DNS</code> \u9009\u9879\uFF0C\u627E\u5230 Nginx \u6216 Caddy \u53CD\u4EE3 gRPC \u914D\u7F6E\u7684\u57DF\u540D\u7684\u89E3\u6790\u8BB0\u5F55\uFF0C\u6253\u5F00\u6A59\u8272\u4E91\u542F\u7528 CDN\u3002</li></ul>`,13),o=[p];function c(l,d,r,i,k,u){return a(),s("div",null,o)}var v=n(t,[["render",c]]);export{g as __pageData,v as default};