我有几个虚拟主机nginx
。
我可以只HTTP/2
为特定的虚拟主机启用nginx
吗?
当我启用HTTP/2
虚拟主机时,例如:
server {
listen 443 ssl http2;
server_name a.b.com;
...
}
Run Code Online (Sandbox Code Playgroud)
我可以通过 HTTP2.0 访问 abcom。
但是现在同一台上的所有其他虚拟主机也都nginx
支持 HTTP/2。但我只想通过HTTP/1.1
.
是http2
在服务器级别的指令?
简短回答:在您当前的设置中不可能。
启动时,nginx
首先为每组侦听相同IP:port组合的虚拟主机创建一个单独的进程,然后将该进程的能力设置为该进程处理的该组中每个虚拟主机的所有能力的总和.
在您的情况下,只有一个进程处理绑定到 的所有虚拟主机*:443
,因此该进程包含该http2
功能。
为了实现您想要的,您需要使nginx
spawn 成为一个不同的进程,该进程http2
在单独的IP:port组合上没有能力。
对于要通过 访问的虚拟主机http2
,您必须:
listen 8443 ssl http2;
)并http2
从所有其他端口中删除(例如`listen 443 ssl;)listen new_ip:443 ssl http2;
和listen current_ip:443 ssl;
分别)多个 IP 的示例配置:
server {
listen current_ip:443 ssl;
server_name http11-host.example.com;
...
}
server {
listen current_ip:443 ssl;
server_name another-http11-host.example.com;
...
}
...
...
server {
listen new_ip:443 ssl http2;
server_name http2-host.example.net;
...
}
server {
listen current_ip:443 ssl http2;
server_name another-http2-host.example.org;
...
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1746 次 |
最近记录: |