如果想禁止别人用我们未绑定的域名或 IP 访问 80 端口,可以这样写:
server { listen 80 default_server; server_name ""; return 444; }
这样一来,凡是没有绑定的域名包括 IP 访问 80 端口都会关闭连接,已经绑定的域名可以正常访问。 于是,我就用同样的办法,对 443 端口进行同样的限制,于是这样写:
server { listen 443 default_server; server_name ""; return 444; }
然后问题来了,所有 443 端口都无法使用了,就算是已绑定的域名也被关闭连接了。 问题出在哪里呢,难道 443 端口无法实现那样的效果吗?
1
Flygoat 2017-03-19 21:13:02 +08:00 via iPad
443 端口需要先建立连接才能得到 hostname 。。。。
|
4
lhbc 2017-03-19 21:19:49 +08:00
server_name _;
|
6
Bardon 2017-03-19 21:24:53 +08:00
我是直接 301 到百度
|
8
Bardon 2017-03-19 21:27:09 +08:00
不知道你双引号的写法是哪里来的
听 4 楼的 另外如果你的 443 指的是 ssl 的话,没必要多此一举 |
10
pubby 2017-03-19 21:36:24 +08:00
|
11
pubby 2017-03-19 21:40:25 +08:00
我是加了一个自签证书
listen 443 ssl default; server_name localhost; ssl_certificate cert.pem; ssl_certificate_key cert.key; |
12
Bardon 2017-03-19 21:53:36 +08:00
未绑定的域名,应该是人家域名直接解析到你 ip
ip ,就是直接 ip 访问 防止他们访问,官方写法是 server { listen 80 default_server; server_name _; return 444; } 443 端口,用 default_server 是个什么意思,你给你的 ip 所在的 localhost 配了 ssl 证书了?就算配了证书了,人家通过其他域名解析过来,也会遇到证书错误呀 |
14
salmon5 2017-03-19 22:09:44 +08:00
server {
listen 443 ssl default_server; return 501; } |