52 lines
18 KiB
HTML
52 lines
18 KiB
HTML
<!DOCTYPE html>
|
||
<html lang="zh-CN">
|
||
<head>
|
||
<meta charset="utf-8">
|
||
<meta name="viewport" content="width=device-width,initial-scale=1">
|
||
<title>反向代理 gRPC 端口(支持 Cloudflare CDN) | 哪吒监控</title>
|
||
<meta name="description" content="哪吒监控是一个轻量化的运维工具">
|
||
<link rel="stylesheet" href="/assets/style.0b9f658b.css">
|
||
<link rel="modulepreload" href="/assets/chunks/AlgoliaSearchBox.98396bc7.js">
|
||
<link rel="modulepreload" href="/assets/app.3817bf4e.js">
|
||
<link rel="modulepreload" href="/assets/guide_q3.md.439c5b36.lean.js">
|
||
|
||
<meta name="twitter:title" content="反向代理 gRPC 端口(支持 Cloudflare CDN) | 哪吒监控">
|
||
<meta property="og:title" content="反向代理 gRPC 端口(支持 Cloudflare CDN) | 哪吒监控">
|
||
</head>
|
||
<body>
|
||
<div id="app"><!--[--><div class="theme"><header class="nav-bar" data-v-675d8756><div class="sidebar-button" data-v-675d8756><svg class="icon" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12z" class></path></svg></div><a class="nav-bar-title" href="/" aria-label="哪吒监控, back to home" data-v-675d8756 data-v-cc01ef16><!----> 哪吒监控</a><div class="flex-grow" data-v-675d8756></div><div class="nav" data-v-675d8756><nav class="nav-links" data-v-675d8756 data-v-eab3edfe><!--[--><div class="item" data-v-eab3edfe><div class="nav-link" data-v-eab3edfe data-v-b8818f8c><a class="item active" href="/" data-v-b8818f8c>使用指南 <!----></a></div></div><div class="item" data-v-eab3edfe><div class="nav-link" data-v-eab3edfe data-v-b8818f8c><a class="item" href="/case/index" data-v-b8818f8c>社区项目 <!----></a></div></div><div class="item" data-v-eab3edfe><div class="nav-link" data-v-eab3edfe data-v-b8818f8c><a class="item" href="/developer/index" data-v-b8818f8c>开发手册 <!----></a></div></div><!--]--><div class="item" data-v-eab3edfe><div class="nav-dropdown-link" data-v-eab3edfe data-v-56bf3a3f><button class="button" data-v-56bf3a3f><span class="button-text" data-v-56bf3a3f>Languages</span><span class="right button-arrow" data-v-56bf3a3f></span></button><ul class="dialog" data-v-56bf3a3f><!--[--><li class="dialog-item" data-v-56bf3a3f><div class="nav-dropdown-link-item" data-v-56bf3a3f data-v-bbc27490><a class="item active" href="/guide/q3.html" data-v-bbc27490><span class="arrow" data-v-bbc27490></span><span class="text" data-v-bbc27490>简体中文</span><span class="icon" data-v-bbc27490><!----></span></a></div></li><li class="dialog-item" data-v-56bf3a3f><div class="nav-dropdown-link-item" data-v-56bf3a3f data-v-bbc27490><a class="item" href="/en_US/guide/q3.html" data-v-bbc27490><span class="arrow" data-v-bbc27490></span><span class="text" data-v-bbc27490>English</span><span class="icon" data-v-bbc27490><!----></span></a></div></li><!--]--></ul></div></div><div class="item" data-v-eab3edfe><div class="nav-link" data-v-eab3edfe data-v-b8818f8c><a class="item isExternal" href="https://github.com/nezhahq/nezhahq.github.io" target="_blank" rel="noopener noreferrer" data-v-b8818f8c>GitHub <svg class="icon outbound" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewbox="0 0 100 100" width="15" height="15" data-v-b8818f8c><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></div></div></nav></div><!--[--><!--[--><div class="algolia-search-box" id="docsearch"></div><!--]--><!--]--></header><aside class="sidebar" data-v-83e92a68><nav class="nav-links nav" data-v-83e92a68 data-v-eab3edfe><!--[--><div class="item" data-v-eab3edfe><div class="nav-link" data-v-eab3edfe data-v-b8818f8c><a class="item active" href="/" data-v-b8818f8c>使用指南 <!----></a></div></div><div class="item" data-v-eab3edfe><div class="nav-link" data-v-eab3edfe data-v-b8818f8c><a class="item" href="/case/index" data-v-b8818f8c>社区项目 <!----></a></div></div><div class="item" data-v-eab3edfe><div class="nav-link" data-v-eab3edfe data-v-b8818f8c><a class="item" href="/developer/index" data-v-b8818f8c>开发手册 <!----></a></div></div><!--]--><div class="item" data-v-eab3edfe><div class="nav-dropdown-link" data-v-eab3edfe data-v-56bf3a3f><button class="button" data-v-56bf3a3f><span class="button-text" data-v-56bf3a3f>Languages</span><span class="right button-arrow" data-v-56bf3a3f></span></button><ul class="dialog" data-v-56bf3a3f><!--[--><li class="dialog-item" data-v-56bf3a3f><div class="nav-dropdown-link-item" data-v-56bf3a3f data-v-bbc27490><a class="item active" href="/guide/q3.html" data-v-bbc27490><span class="arrow" data-v-bbc27490></span><span class="text" data-v-bbc27490>简体中文</span><span class="icon" data-v-bbc27490><!----></span></a></div></li><li class="dialog-item" data-v-56bf3a3f><div class="nav-dropdown-link-item" data-v-56bf3a3f data-v-bbc27490><a class="item" href="/en_US/guide/q3.html" data-v-bbc27490><span class="arrow" data-v-bbc27490></span><span class="text" data-v-bbc27490>English</span><span class="icon" data-v-bbc27490><!----></span></a></div></li><!--]--></ul></div></div><div class="item" data-v-eab3edfe><div class="nav-link" data-v-eab3edfe data-v-b8818f8c><a class="item isExternal" href="https://github.com/nezhahq/nezhahq.github.io" target="_blank" rel="noopener noreferrer" data-v-b8818f8c>GitHub <svg class="icon outbound" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewbox="0 0 100 100" width="15" height="15" data-v-b8818f8c><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></div></div></nav><!--[--><!--]--><ul class="sidebar-links" data-v-83e92a68><!--[--><li class="sidebar-link"><p class="sidebar-link-item">安装手册</p><ul class="sidebar-links"><li class="sidebar-link"><a class="sidebar-link-item" href="/guide/dashboard">安装 Dashboard</a><!----></li><li class="sidebar-link"><a class="sidebar-link-item" href="/guide/agent">安装 Agent</a><!----></li></ul></li><li class="sidebar-link"><p class="sidebar-link-item">管理面板配置</p><ul class="sidebar-links"><li class="sidebar-link"><a class="sidebar-link-item" href="/guide/servers">主机</a><!----></li><li class="sidebar-link"><a class="sidebar-link-item" href="/guide/services">服务</a><!----></li><li class="sidebar-link"><a class="sidebar-link-item" href="/guide/tasks">定时任务</a><!----></li><li class="sidebar-link"><a class="sidebar-link-item" href="/guide/notifications">报警通知</a><!----></li><li class="sidebar-link"><a class="sidebar-link-item" href="/guide/settings">设置</a><!----></li><li class="sidebar-link"><a class="sidebar-link-item" href="/guide/api">API</a><!----></li></ul></li><li class="sidebar-link"><p class="sidebar-link-item">常见问题</p><ul class="sidebar-links"><li class="sidebar-link"><a class="sidebar-link-item" href="/guide/q1">TG api 被墙</a><!----></li><li class="sidebar-link"><a class="sidebar-link-item" href="/guide/q2">Agent 无法启动/上线 查看日志并进行排错的步骤</a><!----></li><li class="sidebar-link"><a class="sidebar-link-item active" href="/guide/q3">反向代理 gRPC 端口的步骤</a><!----></li><li class="sidebar-link"><a class="sidebar-link-item" href="/guide/q4">实时通道断开/在线终端连接失败</a><!----></li><li class="sidebar-link"><a class="sidebar-link-item" href="/guide/q5">进行数据迁移、备份和恢复的步骤</a><!----></li><li class="sidebar-link"><a class="sidebar-link-item" href="/guide/q6">设置每月重置流量统计的步骤</a><!----></li><li class="sidebar-link"><a class="sidebar-link-item" href="/guide/q7">自定义 Agent 监控项目的步骤</a><!----></li></ul></li><li class="sidebar-link"><p class="sidebar-link-item">排障指南</p><ul class="sidebar-links"><li class="sidebar-link"><a class="sidebar-link-item" href="/guide/dashboardq">Dashboard 相关</a><!----></li><li class="sidebar-link"><a class="sidebar-link-item" href="/guide/agentq">Agent 相关</a><!----></li><li class="sidebar-link"><a class="sidebar-link-item" href="/guide/loginq">登录相关</a><!----></li></ul></li><!--]--></ul><!--[--><!--]--></aside><div class="sidebar-mask"></div><main class="page" data-v-7eddb2c4><div class="container" data-v-7eddb2c4><!--[--><!--]--><div style="position:relative;" class="content" data-v-7eddb2c4><div><h4 id="反向代理-grpc-端口(支持-cloudflare-cdn)" tabindex="-1">反向代理 gRPC 端口(支持 Cloudflare CDN) <a class="header-anchor" href="#反向代理-grpc-端口(支持-cloudflare-cdn)" aria-hidden="true">#</a></h4><p>使用 Nginx 或者 Caddy 反向代理 gRPC</p><ul><li>Nginx 配置</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"># 你的 Agent 连接 Dashboard 的域名</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"># 你的域名证书路径</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"># 你的域名私钥路径</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 配置</li></ul><div class="language-"><pre><code>data.example.com:443 { # 你的 Agent 连接 Dashboard 的域名
|
||
reverse_proxy {
|
||
to localhost:5555
|
||
transport http {
|
||
versions h2c 2
|
||
}
|
||
}
|
||
}
|
||
</code></pre></div><p>Dashboard 面板端配置</p><ul><li>首先登录面板进入管理后台 打开设置页面,在 <code>未接入CDN的面板服务器域名/IP</code> 中填入上一步在 Nginx 或 Caddy 中配置的域名 比如 <code>data.example.com</code> ,并保存。</li><li>然后在面板服务器中,打开 /opt/nezha/dashboard/data/config.yaml 文件,将 <code>proxygrpcport</code> 修改为 Nginx 或 Caddy 监听的端口,比如上一步设置的 <code>443</code> ;因为我们在 Nginx 或 Caddy 中开启了 SSL/TLS,所以需要将 <code>tls</code> 设置为 <code>true</code> ;修改完成后重启面板。</li></ul><p>Agent 端配置</p><ul><li>登录面板管理后台,复制一键安装命令,在对应的服务器上面执行一键安装命令重新安装 agent 端即可。</li></ul><p>开启 Cloudflare CDN(可选)</p><p>根据 Cloudflare gRPC 的要求:gRPC 服务必须侦听 443 端口 且必须支持 TLS 和 HTTP/2。 所以如果需要开启 CDN,必须在配置 Nginx 或者 Caddy 反向代理 gRPC 时使用 443 端口,并配置证书(Caddy 会自动申请并配置证书)。</p><ul><li>登录 Cloudflare,选择使用的域名。打开 <code>网络</code> 选项将 <code>gRPC</code> 开关打开,打开 <code>DNS</code> 选项,找到 Nginx 或 Caddy 反代 gRPC 配置的域名的解析记录,打开橙色云启用 CDN。</li></ul></div></div><footer class="page-footer" data-v-7eddb2c4 data-v-07c132fc><div class="edit" data-v-07c132fc><div class="edit-link" data-v-07c132fc data-v-1ed99556><a class="link" href="https://github.com/nezhahq/nezhahq.github.io/edit/main/docs/guide/q3.md" target="_blank" rel="noopener noreferrer" data-v-1ed99556>在GitHub中编辑 <svg class="icon outbound icon" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewbox="0 0 100 100" width="15" height="15" data-v-1ed99556><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></div></div><div class="updated" data-v-07c132fc><p class="last-updated" data-v-07c132fc data-v-abce3432><span class="prefix" data-v-abce3432>上次更新:</span><span class="datetime" data-v-abce3432></span></p></div></footer><div class="next-and-prev-link" data-v-7eddb2c4 data-v-38ede35f><div class="container" data-v-38ede35f><div class="prev" data-v-38ede35f><a class="link" href="/guide/q2" data-v-38ede35f><svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 24 24" class="icon icon-prev" data-v-38ede35f><path d="M19,11H7.4l5.3-5.3c0.4-0.4,0.4-1,0-1.4s-1-0.4-1.4,0l-7,7c-0.1,0.1-0.2,0.2-0.2,0.3c-0.1,0.2-0.1,0.5,0,0.8c0.1,0.1,0.1,0.2,0.2,0.3l7,7c0.2,0.2,0.5,0.3,0.7,0.3s0.5-0.1,0.7-0.3c0.4-0.4,0.4-1,0-1.4L7.4,13H19c0.6,0,1-0.4,1-1S19.6,11,19,11z"></path></svg><span class="text" data-v-38ede35f>Agent 无法启动/上线 查看日志并进行排错的步骤</span></a></div><div class="next" data-v-38ede35f><a class="link" href="/guide/q4" data-v-38ede35f><span class="text" data-v-38ede35f>实时通道断开/在线终端连接失败</span><svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 24 24" class="icon icon-next" data-v-38ede35f><path d="M19.9,12.4c0.1-0.2,0.1-0.5,0-0.8c-0.1-0.1-0.1-0.2-0.2-0.3l-7-7c-0.4-0.4-1-0.4-1.4,0s-0.4,1,0,1.4l5.3,5.3H5c-0.6,0-1,0.4-1,1s0.4,1,1,1h11.6l-5.3,5.3c-0.4,0.4-0.4,1,0,1.4c0.2,0.2,0.5,0.3,0.7,0.3s0.5-0.1,0.7-0.3l7-7C19.8,12.6,19.9,12.5,19.9,12.4z"></path></svg></a></div></div></div><!--[--><!--]--></div></main></div><!----><!--]--></div>
|
||
<script>__VP_HASH_MAP__ = JSON.parse("{\"case_case1.md\":\"bb4a428c\",\"case_case2.md\":\"3cf56c4d\",\"case_case3.md\":\"70c0a6a5\",\"case_case4.md\":\"445f551c\",\"case_index.md\":\"185a0524\",\"developer_index.md\":\"f8a1a0ec\",\"developer_l10n.md\":\"3b2ef267\",\"developer_theme.md\":\"d3f1c218\",\"en_us_case_case1.md\":\"99cd4f4f\",\"en_us_case_case2.md\":\"51f633c1\",\"en_us_case_case3.md\":\"782bfd51\",\"en_us_case_case4.md\":\"207aafc1\",\"en_us_case_index.md\":\"be029dac\",\"en_us_developer_index.md\":\"91f46408\",\"en_us_developer_l10n.md\":\"5a4d34af\",\"en_us_developer_theme.md\":\"dbff9c27\",\"en_us_guide_agent.md\":\"d3112ce4\",\"en_us_guide_agentq.md\":\"5cb72347\",\"en_us_guide_api.md\":\"5d9f6408\",\"en_us_guide_dashboard.md\":\"4ad196f0\",\"en_us_guide_dashboardq.md\":\"ba23b9bd\",\"en_us_guide_loginq.md\":\"18fa65ac\",\"en_us_guide_notifications.md\":\"38c3108a\",\"en_us_guide_q2.md\":\"7a9041b4\",\"en_us_guide_q3.md\":\"79169935\",\"en_us_guide_q4.md\":\"8cbc55af\",\"en_us_guide_q5.md\":\"4ef1f642\",\"en_us_guide_q6.md\":\"3188fa5d\",\"en_us_guide_q7.md\":\"df773917\",\"en_us_guide_servers.md\":\"86631cfc\",\"en_us_guide_services.md\":\"0b2735c5\",\"en_us_guide_settings.md\":\"6bae2d67\",\"en_us_guide_tasks.md\":\"99cd12e1\",\"en_us_index.md\":\"9a861ce5\",\"guide_agent.md\":\"d0f22c88\",\"guide_agentq.md\":\"1101fd10\",\"guide_api.md\":\"92319056\",\"guide_dashboard.md\":\"0569080c\",\"guide_dashboardq.md\":\"61e04fcd\",\"guide_loginq.md\":\"6646f83a\",\"guide_notifications.md\":\"704bcb6a\",\"guide_q1.md\":\"3cb73fa3\",\"guide_q2.md\":\"fa638989\",\"guide_q3.md\":\"439c5b36\",\"guide_q4.md\":\"f572abef\",\"guide_q5.md\":\"502c4153\",\"guide_q6.md\":\"feb76c40\",\"guide_q7.md\":\"8ffd6348\",\"guide_servers.md\":\"f78eb869\",\"guide_services.md\":\"3bc28e6a\",\"guide_settings.md\":\"466421e8\",\"guide_tasks.md\":\"80852d65\",\"index.md\":\"60a32a4a\"}")</script>
|
||
<script type="module" async src="/assets/app.3817bf4e.js"></script>
|
||
|
||
</body>
|
||
</html> |