@@ -97,3 +97,97 @@ http {
97
97
```
98
98
99
99
更为详细的指令可参考官网文档 [ XQUIC模块] ( http://tengine.taobao.org/document_cn/xquic_cn.html )
100
+
101
+ # 浏览器使用 HTTP3
102
+
103
+ 浏览器默认不会使用 ` HTTP3 ` 请求,需要服务端响应包头 ` Alt-Svc ` 进行升级说明,浏览器通过响应包头感知到服务端是支持 ` HTTP3 ` 的,下次请求会尝试使用 ` HTTP3 ` 。
104
+
105
+ ``` nginx
106
+ worker_processes 1;
107
+
108
+ events {
109
+ worker_connections 1024;
110
+ }
111
+
112
+ xquic_log "pipe:rollback /usr/local/tengine/logs/tengine-xquic.log baknum=10 maxsize=1G interval=1d adjust=600" info;
113
+
114
+ http {
115
+ xquic_ssl_certificate /usr/local/tengine/ssl/default-fake-certificate.pem;
116
+ xquic_ssl_certificate_key /usr/local/tengine/ssl/default-fake-certificate.pem;
117
+
118
+ server {
119
+ listen 2443 xquic reuseport;
120
+
121
+ location / {
122
+ }
123
+ }
124
+
125
+ server {
126
+ listen 80 default_server reuseport backlog=4096;
127
+ listen 443 default_server reuseport backlog=4096 ssl http2;
128
+ listen 443 default_server reuseport backlog=4096 xquic;
129
+
130
+ server_name s1.test.com;
131
+
132
+ add_header Alt-Svc 'h3=":443"; ma=2592000,h3-29=":443"; ma=2592000' always;
133
+
134
+ ssl_certificate /etc/ingress-controller/ssl/s1.crt;
135
+ ssl_certificate_key /etc/ingress-controller/ssl/s1.key;
136
+ }
137
+
138
+ server {
139
+ listen 80;
140
+ listen 443 ssl http2;
141
+ listen 443 xquic;
142
+
143
+ server_name s2.test.com;
144
+
145
+ add_header Alt-Svc 'h3=":443"; ma=2592000,h3-29=":443"; ma=2592000' always;
146
+
147
+ ssl_certificate /etc/ingress-controller/ssl/s2.crt;
148
+ ssl_certificate_key /etc/ingress-controller/ssl/s2.key;
149
+ }
150
+ }
151
+ ```
152
+
153
+ 通过以上配置,浏览器访问对应域名,第一次访问 ` HTTP2 ` ,下次访问会切换至 ` HTTP3 ` 。
154
+
155
+ ** 注意** :
156
+
157
+ 在生产环境中,处于安全性考虑,一般情况会以普通用户权限启动 ` Tenigne ` ,而 ` xquic ` 功能在普通用户权限下,监听端口必须配置为 1024 以上,如监听 2443 端口,那对外的四层负载均衡需要做 443 到 2443 端口的映射,` Tenigne ` ` Server ` 段配置示例:
158
+
159
+ ``` nginx
160
+ server {
161
+ listen 80 default_server reuseport backlog=4096;
162
+ listen 443 default_server reuseport backlog=4096 ssl http2;
163
+ listen 2443 default_server reuseport backlog=4096 xquic;
164
+
165
+ add_header Alt-Svc 'h3=":443"; ma=2592000,h3-29=":443"; ma=2592000' always;
166
+
167
+ ssl_certificate /etc/ingress-controller/ssl/s1.crt;
168
+ ssl_certificate_key /etc/ingress-controller/ssl/s1.key;
169
+ }
170
+ ```
171
+
172
+ 四层负载均衡配置示例:
173
+
174
+ ``` yaml
175
+ type : LoadBalancer
176
+ ports :
177
+ - port : 80
178
+ name : tengine-tcp-80
179
+ protocol : TCP
180
+ targetPort : 80
181
+ - port : 443
182
+ name : tengine-tcp-443
183
+ protocol : TCP
184
+ targetPort : 443
185
+ - port : 443
186
+ name : tengine-udp-443
187
+ protocol : UDP
188
+ targetPort : 2443
189
+ selector :
190
+ app : tengine
191
+ ` ` `
192
+
193
+ 对用户来讲,还是通过 443 端口访问,通过四层负责均衡设备,转换为 ` Tengine` 的 2443 端口。
0 commit comments