Nginx 如何禁止从 IP 访问

发布于 2021-01-16  298 次阅读


之前有写过 Apache 的 IP 禁止访问,这次来写个 Nginx 的
禁止 80 端口:

server
{
    listen 80 default_server;
    server_name _;
    return 444;
}

还是非常简单的
但是 Nginx 和 Apache 稍微有些不同,Apache 直接从 IP 访问 443 时会报 400 错误,而 Nginx 则不会,所以得加上禁止 https 的
加起来就是

server
{
    listen 80 default_server;
    listen 443 default_server;
    server_name _;
    ssl_certificate /yourpath/fullchain.pem;
    ssl_certificate_key /yourpath/privkey.pem;
    ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
    ssl_ciphers EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
    ssl_prefer_server_ciphers on;
    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 10m;
    return 444;
}

nginx 需要有完整的 https 配置才能生效,至于证书嘛...... 随便就可以。之前也有写如何自定义 ssl 证书的文章,可以参考一下