-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.html
261 lines (188 loc) · 27 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
<!DOCTYPE html>
<html>
<head><meta name="generator" content="Hexo 3.8.0">
<meta charset="utf-8">
<title>茂茂爱学习</title>
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<meta property="og:type" content="website">
<meta property="og:title" content="茂茂爱学习">
<meta property="og:url" content="http://yoursite.com/index.html">
<meta property="og:site_name" content="茂茂爱学习">
<meta property="og:locale" content="default">
<meta name="twitter:card" content="summary">
<meta name="twitter:title" content="茂茂爱学习">
<link rel="alternate" href="/atom.xml" title="茂茂爱学习" type="application/atom+xml">
<link rel="icon" href="/favicon.png">
<link href="//fonts.googleapis.com/css?family=Source+Code+Pro" rel="stylesheet" type="text/css">
<link rel="stylesheet" href="/css/style.css">
</head>
</html>
<body>
<div id="container">
<div id="wrap">
<header id="header">
<div id="banner"></div>
<div id="header-outer" class="outer">
<div id="header-title" class="inner">
<h1 id="logo-wrap">
<a href="/" id="logo">茂茂爱学习</a>
</h1>
</div>
<div id="header-inner" class="inner">
<nav id="main-nav">
<a id="main-nav-toggle" class="nav-icon"></a>
<a class="main-nav-link" href="/">Home</a>
<a class="main-nav-link" href="/archives">Archives</a>
</nav>
<nav id="sub-nav">
<a id="nav-rss-link" class="nav-icon" href="/atom.xml" title="RSS Feed"></a>
<a id="nav-search-btn" class="nav-icon" title="Search"></a>
</nav>
<div id="search-form-wrap">
<form action="//google.com/search" method="get" accept-charset="UTF-8" class="search-form"><input type="search" name="q" class="search-form-input" placeholder="Search"><button type="submit" class="search-form-submit"></button><input type="hidden" name="sitesearch" value="http://yoursite.com"></form>
</div>
</div>
</div>
</header>
<div class="outer">
<section id="main">
<article id="post-confd中文文档" class="article article-type-post" itemscope itemprop="blogPost">
<div class="article-meta">
<a href="/2019/02/28/confd中文文档/" class="article-date">
<time datetime="2019-02-28T09:49:09.000Z" itemprop="datePublished">2019-02-28</time>
</a>
<div class="article-category">
<a class="article-category-link" href="/categories/运维/">运维</a>
</div>
</div>
<div class="article-inner">
<header class="article-header">
<h1 itemprop="name">
<a class="article-title" href="/2019/02/28/confd中文文档/">confd中文文档</a>
</h1>
</header>
<div class="article-entry" itemprop="articleBody">
<h1 id="快速入门"><a href="#快速入门" class="headerlink" title="快速入门"></a>快速入门</h1><p>开始之前请确认 <a href="https://github.com/kelseyhightower/confd/blob/master/docs/installation.md" target="_blank" rel="noopener">下载并安装了confd</a>.</p>
<h2 id="选择一个后端"><a href="#选择一个后端" class="headerlink" title="选择一个后端"></a>选择一个后端</h2><p>confd支持以下后端:</p>
<ul>
<li>etcd</li>
<li>consul</li>
<li>vault</li>
<li>环境变量</li>
<li>文件</li>
<li>redis</li>
<li>zookeeper</li>
<li>dynamodb</li>
<li>rancher</li>
<li>ssm (AWS Simple Systems Manager Parameter Store)</li>
</ul>
<h3 id="添加keys"><a href="#添加keys" class="headerlink" title="添加keys"></a>添加keys</h3><p>本教程假设你已经拥有了可以工作的 <a href="https://github.com/coreos/etcd#getting-started" target="_blank" rel="noopener">etcd</a>, 或者 <a href="http://www.consul.io/intro/getting-started/install.html" target="_blank" rel="noopener">consul</a> 服务启动并且运行中,并且可以添加新的keys。</p>
<h4 id="etcd"><a href="#etcd" class="headerlink" title="etcd"></a>etcd</h4><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">etcdctl set /myapp/database/url db.example.com</span><br><span class="line">etcdctl set /myapp/database/user rob</span><br></pre></td></tr></table></figure>
<h4 id="consul"><a href="#consul" class="headerlink" title="consul"></a>consul</h4><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">curl -X PUT -d 'db.example.com' http://localhost:8500/v1/kv/myapp/database/url</span><br><span class="line">curl -X PUT -d 'rob' http://localhost:8500/v1/kv/myapp/database/user</span><br></pre></td></tr></table></figure>
<h4 id="vault"><a href="#vault" class="headerlink" title="vault"></a>vault</h4><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">vault mount -path myapp generic</span><br><span class="line">vault write myapp/database url=db.example.com user=rob</span><br></pre></td></tr></table></figure>
<h4 id="环境变量"><a href="#环境变量" class="headerlink" title="环境变量"></a>环境变量</h4><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">export MYAPP_DATABASE_URL=db.example.com</span><br><span class="line">export MYAPP_DATABASE_USER=rob</span><br></pre></td></tr></table></figure>
<h4 id="文件"><a href="#文件" class="headerlink" title="文件"></a>文件</h4><p>myapp.yaml<br><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line">myapp:</span><br><span class="line"> database:</span><br><span class="line"> url: db.example.com</span><br><span class="line"> user: rob</span><br></pre></td></tr></table></figure></p>
<h4 id="redis"><a href="#redis" class="headerlink" title="redis"></a>redis</h4><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">redis-cli set /myapp/database/url db.example.com</span><br><span class="line">redis-cli set /myapp/database/user rob</span><br></pre></td></tr></table></figure>
<h4 id="zookeeper"><a href="#zookeeper" class="headerlink" title="zookeeper"></a>zookeeper</h4><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line">[zk: localhost:2181(CONNECTED) 1] create /myapp ""</span><br><span class="line">[zk: localhost:2181(CONNECTED) 2] create /myapp/database ""</span><br><span class="line">[zk: localhost:2181(CONNECTED) 3] create /myapp/database/url "db.example.com"</span><br><span class="line">[zk: localhost:2181(CONNECTED) 4] create /myapp/database/user "rob"</span><br></pre></td></tr></table></figure>
<h4 id="dynamodb"><a href="#dynamodb" class="headerlink" title="dynamodb"></a>dynamodb</h4><p>首先创建一个table通过以下方式:</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line">aws dynamodb create-table \</span><br><span class="line"> --region <YOUR_REGION> --table-name <YOUR_TABLE> \</span><br><span class="line"> --attribute-definitions AttributeName=key,AttributeType=S \</span><br><span class="line"> --key-schema AttributeName=key,KeyType=HASH \</span><br><span class="line"> --provisioned-throughput ReadCapacityUnits=1,WriteCapacityUnits=1</span><br></pre></td></tr></table></figure>
<p>现在创建items. <code>value</code>的属性的类型必须是 <a href="http://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_AttributeValue.html" target="_blank" rel="noopener">string</a>:</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line">aws dynamodb put-item --table-name <YOUR_TABLE> --region <YOUR_REGION> \</span><br><span class="line"> --item '{ "key": { "S": "/myapp/database/url" }, "value": {"S": "db.example.com"}}'</span><br><span class="line">aws dynamodb put-item --table-name <YOUR_TABLE> --region <YOUR_REGION> \</span><br><span class="line"> --item '{ "key": { "S": "/myapp/database/user" }, "value": {"S": "rob"}}'</span><br></pre></td></tr></table></figure>
<h4 id="Rancher"><a href="#Rancher" class="headerlink" title="Rancher"></a>Rancher</h4><p>This backend consumes the <a href="https://www.rancher.com" target="_blank" rel="noopener">Rancher</a> metadata service. For available keys, see the <a href="http://docs.rancher.com/rancher/rancher-services/metadata-service/" target="_blank" rel="noopener">Rancher Metadata Service docs</a>.</p>
<h4 id="ssm"><a href="#ssm" class="headerlink" title="ssm"></a>ssm</h4><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">aws ssm put-parameter --name "/myapp/database/url" --type "String" --value "db.example.com"</span><br><span class="line">aws ssm put-parameter --name "/myapp/database/user" --type "SecureString" --value "rob"</span><br></pre></td></tr></table></figure>
<h3 id="创建配置目录"><a href="#创建配置目录" class="headerlink" title="创建配置目录"></a>创建配置目录</h3><p>配置目录存放模板资源配置(confdir)和模板(templates)的地方.</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">sudo mkdir -p /etc/confd/{conf.d,templates}</span><br></pre></td></tr></table></figure>
<h3 id="创建一个模板资源配置"><a href="#创建一个模板资源配置" class="headerlink" title="创建一个模板资源配置"></a>创建一个模板资源配置</h3><p>模板资源被配置在<a href="https://github.com/mojombo/toml" target="_blank" rel="noopener">TOML</a>配置文件中,存放在<code>confdir</code>.</p>
<p>/etc/confd/conf.d/myconfig.toml<br><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line">[template]</span><br><span class="line">src = "myconfig.conf.tmpl"</span><br><span class="line">dest = "/tmp/myconfig.conf"</span><br><span class="line">keys = [</span><br><span class="line"> "/myapp/database/url",</span><br><span class="line"> "/myapp/database/user",</span><br><span class="line">]</span><br></pre></td></tr></table></figure></p>
<h3 id="创建源模板"><a href="#创建源模板" class="headerlink" title="创建源模板"></a>创建源模板</h3><p>源模板格式为<a href="http://golang.org/pkg/text/template/#pkg-overview" target="_blank" rel="noopener">Golang text templates</a>.</p>
<p>/etc/confd/templates/myconfig.conf.tmpl<br><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">[myconfig]</span><br><span class="line">database_url = {{getv "/myapp/database/url"}}</span><br><span class="line">database_user = {{getv "/myapp/database/user"}}</span><br></pre></td></tr></table></figure></p>
<h3 id="执行模板"><a href="#执行模板" class="headerlink" title="执行模板"></a>执行模板</h3><p>confd支持两种操作模式:daemon和一次性执行.<br>在daemon模式中confd监视后端存储中的变化,检测到变化后进行配置文件的更新。</p>
<h4 id="etcd-1"><a href="#etcd-1" class="headerlink" title="etcd"></a>etcd</h4><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">confd -onetime -backend etcd -node http://127.0.0.1:2379</span><br></pre></td></tr></table></figure>
<h4 id="consul-1"><a href="#consul-1" class="headerlink" title="consul"></a>consul</h4><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">confd -onetime -backend consul -node 127.0.0.1:8500</span><br></pre></td></tr></table></figure>
<h4 id="vault-1"><a href="#vault-1" class="headerlink" title="vault"></a>vault</h4><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line">ROOT_TOKEN=$(vault read -field id auth/token/lookup-self)</span><br><span class="line"></span><br><span class="line">confd -onetime -backend vault -node http://127.0.0.1:8200 \</span><br><span class="line"> -auth-type token -auth-token $ROOT_TOKEN</span><br></pre></td></tr></table></figure>
<h4 id="dynamodb-1"><a href="#dynamodb-1" class="headerlink" title="dynamodb"></a>dynamodb</h4><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">confd -onetime -backend dynamodb -table <YOUR_TABLE></span><br></pre></td></tr></table></figure>
<h4 id="env"><a href="#env" class="headerlink" title="env"></a>env</h4><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">confd -onetime -backend env</span><br></pre></td></tr></table></figure>
<h4 id="file"><a href="#file" class="headerlink" title="file"></a>file</h4><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">confd -onetime -backend file -file myapp.yaml</span><br></pre></td></tr></table></figure>
<h4 id="redis-1"><a href="#redis-1" class="headerlink" title="redis"></a>redis</h4><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">confd -onetime -backend redis -node 192.168.255.210:6379</span><br></pre></td></tr></table></figure>
<p>或者想指定明确的redis index (示例中指定index4):</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">confd -onetime -backend redis -node 192.168.255.210:6379/4</span><br></pre></td></tr></table></figure>
<h4 id="rancher"><a href="#rancher" class="headerlink" title="rancher"></a>rancher</h4><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">confd -onetime -backend rancher -prefix /2015-07-25</span><br></pre></td></tr></table></figure>
<p><em>Note</em>: The metadata api prefix can be defined on the cli, or as part of your keys in the template toml file.</p>
<p>Output:<br><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">2014-07-08T20:38:36-07:00 confd[16252]: INFO Target config /tmp/myconfig.conf out of sync</span><br><span class="line">2014-07-08T20:38:36-07:00 confd[16252]: INFO Target config /tmp/myconfig.conf has been updated</span><br></pre></td></tr></table></figure></p>
<p>The <code>dest</code> configuration file should now be in sync.</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">cat /tmp/myconfig.conf</span><br></pre></td></tr></table></figure>
<p>Output:<br><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line"># This a comment</span><br><span class="line">[myconfig]</span><br><span class="line">database_url = db.example.com</span><br><span class="line">database_user = rob</span><br></pre></td></tr></table></figure></p>
<h4 id="ssm-1"><a href="#ssm-1" class="headerlink" title="ssm"></a>ssm</h4><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">confd -onetime -backend ssm</span><br></pre></td></tr></table></figure>
<h2 id="高级示例"><a href="#高级示例" class="headerlink" title="高级示例"></a>高级示例</h2><p>在该示例中,我们会使用confd通过单一的模板来管理两个nginx配置</p>
<h3 id="添加keys-1"><a href="#添加keys-1" class="headerlink" title="添加keys"></a>添加keys</h3><h4 id="etcd-2"><a href="#etcd-2" class="headerlink" title="etcd"></a>etcd</h4><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line">etcdctl set /myapp/subdomain myapp</span><br><span class="line">etcdctl set /myapp/upstream/app2 "10.0.1.100:80"</span><br><span class="line">etcdctl set /myapp/upstream/app1 "10.0.1.101:80"</span><br><span class="line">etcdctl set /yourapp/subdomain yourapp</span><br><span class="line">etcdctl set /yourapp/upstream/app2 "10.0.1.102:80"</span><br><span class="line">etcdctl set /yourapp/upstream/app1 "10.0.1.103:80"</span><br></pre></td></tr></table></figure>
<h4 id="consul-2"><a href="#consul-2" class="headerlink" title="consul"></a>consul</h4><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line">curl -X PUT -d 'myapp' http://localhost:8500/v1/kv/myapp/subdomain</span><br><span class="line">curl -X PUT -d '10.0.1.100:80' http://localhost:8500/v1/kv/myapp/upstream/app1</span><br><span class="line">curl -X PUT -d '10.0.1.101:80' http://localhost:8500/v1/kv/myapp/upstream/app2</span><br><span class="line">curl -X PUT -d 'yourapp' http://localhost:8500/v1/kv/yourapp/subdomain</span><br><span class="line">curl -X PUT -d '10.0.1.102:80' http://localhost:8500/v1/kv/yourapp/upstream/app1</span><br><span class="line">curl -X PUT -d '10.0.1.103:80' http://localhost:8500/v1/kv/yourapp/upstream/app2</span><br></pre></td></tr></table></figure>
<h3 id="创建模板配置文件"><a href="#创建模板配置文件" class="headerlink" title="创建模板配置文件"></a>创建模板配置文件</h3><p>/etc/confd/conf.d/myapp-nginx.toml</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br></pre></td><td class="code"><pre><span class="line">[template]</span><br><span class="line">prefix = "/myapp"</span><br><span class="line">src = "nginx.tmpl"</span><br><span class="line">dest = "/tmp/myapp.conf"</span><br><span class="line">owner = "nginx"</span><br><span class="line">mode = "0644"</span><br><span class="line">keys = [</span><br><span class="line"> "/subdomain",</span><br><span class="line"> "/upstream",</span><br><span class="line">]</span><br><span class="line">check_cmd = "/usr/sbin/nginx -t -c {{.src}}"</span><br><span class="line">reload_cmd = "/usr/sbin/service nginx reload"</span><br></pre></td></tr></table></figure>
<p>/etc/confd/conf.d/yourapp-nginx.toml</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br></pre></td><td class="code"><pre><span class="line">[template]</span><br><span class="line">prefix = "/yourapp"</span><br><span class="line">src = "nginx.tmpl"</span><br><span class="line">dest = "/tmp/yourapp.conf"</span><br><span class="line">owner = "nginx"</span><br><span class="line">mode = "0644"</span><br><span class="line">keys = [</span><br><span class="line"> "/subdomain",</span><br><span class="line"> "/upstream",</span><br><span class="line">]</span><br><span class="line">check_cmd = "/usr/sbin/nginx -t -c {{.src}}"</span><br><span class="line">reload_cmd = "/usr/sbin/service nginx reload"</span><br></pre></td></tr></table></figure>
<h3 id="创建模板"><a href="#创建模板" class="headerlink" title="创建模板"></a>创建模板</h3><p>/etc/confd/templates/nginx.tmpl<br><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br></pre></td><td class="code"><pre><span class="line">upstream {{getv "/subdomain"}} {</span><br><span class="line">{{range getvs "/upstream/*"}}</span><br><span class="line"> server {{.}};</span><br><span class="line">{{end}}</span><br><span class="line">}</span><br><span class="line"></span><br><span class="line">server {</span><br><span class="line"> server_name {{getv "/subdomain"}}.example.com;</span><br><span class="line"> location / {</span><br><span class="line"> proxy_pass http://{{getv "/subdomain"}};</span><br><span class="line"> proxy_redirect off;</span><br><span class="line"> proxy_set_header Host $host;</span><br><span class="line"> proxy_set_header X-Real-IP $remote_addr;</span><br><span class="line"> proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;</span><br><span class="line"> }</span><br><span class="line">}</span><br></pre></td></tr></table></figure></p>
</div>
<footer class="article-footer">
<a data-url="http://yoursite.com/2019/02/28/confd中文文档/" data-id="cjsomrrmf0000ezdv5409csyg" class="article-share-link">Share</a>
<ul class="article-tag-list"><li class="article-tag-list-item"><a class="article-tag-list-link" href="/tags/文档翻译/">文档翻译</a></li><li class="article-tag-list-item"><a class="article-tag-list-link" href="/tags/架构/">架构</a></li><li class="article-tag-list-item"><a class="article-tag-list-link" href="/tags/运维/">运维</a></li></ul>
</footer>
</div>
</article>
</section>
<aside id="sidebar">
<div class="widget-wrap">
<h3 class="widget-title">Categories</h3>
<div class="widget">
<ul class="category-list"><li class="category-list-item"><a class="category-list-link" href="/categories/运维/">运维</a></li></ul>
</div>
</div>
<div class="widget-wrap">
<h3 class="widget-title">Tags</h3>
<div class="widget">
<ul class="tag-list"><li class="tag-list-item"><a class="tag-list-link" href="/tags/文档翻译/">文档翻译</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/架构/">架构</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/运维/">运维</a></li></ul>
</div>
</div>
<div class="widget-wrap">
<h3 class="widget-title">Tag Cloud</h3>
<div class="widget tagcloud">
<a href="/tags/文档翻译/" style="font-size: 10px;">文档翻译</a> <a href="/tags/架构/" style="font-size: 10px;">架构</a> <a href="/tags/运维/" style="font-size: 10px;">运维</a>
</div>
</div>
<div class="widget-wrap">
<h3 class="widget-title">Archives</h3>
<div class="widget">
<ul class="archive-list"><li class="archive-list-item"><a class="archive-list-link" href="/archives/2019/02/">February 2019</a></li></ul>
</div>
</div>
<div class="widget-wrap">
<h3 class="widget-title">Recent Posts</h3>
<div class="widget">
<ul>
<li>
<a href="/2019/02/28/confd中文文档/">confd中文文档</a>
</li>
</ul>
</div>
</div>
</aside>
</div>
<footer id="footer">
<div class="outer">
<div id="footer-info" class="inner">
© 2019 张茂茂<br>
Powered by <a href="http://hexo.io/" target="_blank">Hexo</a>
</div>
</div>
</footer>
</div>
<nav id="mobile-nav">
<a href="/" class="mobile-nav-link">Home</a>
<a href="/archives" class="mobile-nav-link">Archives</a>
</nav>
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>
<link rel="stylesheet" href="/fancybox/jquery.fancybox.css">
<script src="/fancybox/jquery.fancybox.pack.js"></script>
<script src="/js/script.js"></script>
</div>
</body>
</html>