nginx限制用户通过IP访问网站
通常我们在配置nginx时,往往会把IP地址忘记,殊不知,如果没有限制IP地址访问,那么默认IP地址也可以访问到你的网站。为了使网站服务器更加安全,我们可以通过nginx,把用户请求服务器的IP地址直接重定向到403。
限制用户禁止通过IP访问默认的80地址,可通过修改nginx.conf文件,在http字段添加以下内容。
http {
......
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name _;
return 403;
}
......}
这样用户直接请求服务器的IP地址,就会变成403。
好了,我们说过80请求403限制,那么接下来说下443请求限制,与80请求限制一样,在nginx.conf的http字段添加以下内容。
http {
......
server {
listen 443 ssl http2 default_server;
listen [::]:443 ssl http2 default_server;
ssl_certificate ssl/yizuotu.net.pem;
ssl_certificate_key ssl/yizuotu.com.key;
server_name _;
return 403;
}
......}
注意:上面的证书文件随便配置个即可,如果不配置ssl证书字段,会报[emerg] no "ssl_certificate" is defined for the "listen ... ssl"。
那么问题来了,如果我想同时禁止用户通过IP请求80和443,我需要添加两个配置文件吗?
当然,你可以同时配置两个文件,也可以将两个server字段进行合并,合并后的配置如下
server {
listen 80 default_server;
listen [::]:80 default_server;
listen 443 ssl http2 default_server;
listen [::]:443 ssl http2 default_server;
ssl_certificate ssl/yizuotu.net.pem;
ssl_certificate_key ssl/yizuotu.com.key;
server_name _;
return 403;
}