全球主机交流论坛
标题:
【已解决】如何用nginx 禁止ip直接访问网站,只允许域名...
[打印本页]
作者:
casm
时间:
2021-12-16 11:29
标题:
【已解决】如何用nginx 禁止ip直接访问网站,只允许域名...
本帖最后由 casm 于 2021-12-16 12:28 编辑
百度出来都是一样的答案
server {
listen 80 default;
server_name _;
return 403;
}
在结尾加这个server,nginx配置文件直接报错
感谢热情MJJ,已经解决,
先把默认的配置 这个default去掉:
server {
listen 80
default
; #去掉default
...
...
}
然后安装按照楼下Silently的代码,在配置文件底部,新增一个server就行
用宝塔重载配置会提示
nginx: [warn] conflicting server name "_" on 0.0.0.0:80, ignored
无需理会
作者:
cooioobb
时间:
2021-12-16 11:30
默认nginx配置域名就好了
作者:
李云龙
时间:
2021-12-16 11:31
请问我如何百度搜索?
作者:
920
时间:
2021-12-16 11:46
用的宝塔吗?
作者:
920
时间:
2021-12-16 11:51
server {
listen 80;
server_name 123.123.123.123(改成你的IP地址);
return 403;
}
复制代码
这样试试
作者:
Qwe7
时间:
2021-12-16 11:54
正常绑定域名的,ip不能访问,你的是反代项目吗,反代的话不放行反代端口就行了
作者:
whl32
时间:
2021-12-16 11:58
你这个元老啊
作者:
丶Silently
时间:
2021-12-16 11:59
server {
listen 80 default_server;
listen [::]:80 default_server;
listen 443 default_server;
listen [::]:443 default_server;
ssl_reject_handshake on;
server_name _;
return 444;
}
复制代码
作者:
G.K.D
时间:
2021-12-16 12:01
给你的
服务器 IP 自签一个证书
,也可以用在线网站:https://myssl.com/create_test_cert.html
如果用在线网站的话,域名写 IP,有效期选 5 年,生成后要把根证书和证书内容合并到一个文件中。
然后创建一个虚拟主机,配置文件大概就是这样(记得改示例中的证书文件和 IP):
server
{
listen 80 default_server;
listen 443 ssl http2 default_server;
server_name 你的IP;
ssl_certificate /etc/nginx/conf.d/default.pem;
ssl_certificate_key /etc/nginx/conf.d/defaultkey.pem;
ssl_protocols TLSv1.2 TLSv1.3;
return 444;
}
复制代码
这样访问 https://ip 的话,就不会暴露其他网站的证书了,同时也会被直接断开链接(444 状态码最省资源)
也可以加上这两行,限制该虚拟主机只允许服务器内部访问。
allow 127.0.0.0/8;
deny all;
复制代码
或者你可以看一下 Nginx 官方文档,不需要自签证书也可能实现一样效果:
https://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_reject_handshake
作者:
sdqu
时间:
2021-12-16 12:02
既然报错,你就要说具体的报错信息
不然谁知道呢
作者:
lspro
时间:
2021-12-16 12:05
return 444;
欢迎光临 全球主机交流论坛 (https://loc.010206.xyz/)
Powered by Discuz! X3.4