我想用2個服務器模塊。 第一個是:如何在HTTP/2下的Nginx中使用server_name?
server {
listen 443 ssl http2 fastopen=3 reuseport;
server_name a.example.xyz;
include server_safe.conf;
root /home/www/blog/;
}
二是:
server {
listen 443 ssl http2;
server_name b.example.xyz;
include server_safe.conf;
}
我想要什麼: 我想要的服務器名是有效的,也就是說,如果我用一個c.example.xyz
訪問我的網站,無論是a.example.xyz
,b.example.xyz
,c.example.xyz
是同一個IP,因爲它不是在server_name
服務器應該阻止c.example.xyz
請求。
不過,如果我進入https://c.example.xyz
,Nginx的仍然會收到請求,並作爲效應初探a.example.xyz
我知道HTTP/2在其頭部沒有主機,它有一個:authority
代替。
我的問題是:我怎麼能拒絕任何其他的要求嗎?我只想接受host(:authority)
= = a(b).example.xyz
你是正確的,根據你的答案,我創建了之前其他服務器塊'服務器名_'新的服務器模塊,使任何其他要求可給予404。當然,因爲它得到404的響應,它已經通過https協商。我的證書有SAN,我的nginx有SNI,所以證書不是問題。最後,非常感謝 – user3978288