Nginx配置只能通过域名访问,禁止通过IP访问


为了避免客户直接使用IP地址访问我们的网站,导致运维需要变更域名对应IP时引发客户报障,我们可以通过Nginx进行域名访问的限制性配置,具体配置如下:

修改nginx.conf 文件
修改成

server {
    listen 80;
    server_name www.example.com; #这里是你自己指定的域名
    ...
}

再在上个server后继续添加一段:
如果没有找到域名配置的server,会继续向后查找server,走到默认server直接返回403

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

通过以上配置,当使用IP访问时就会返回403错误

Advertisements

Nginx限速配置心得


参考:Rate Limiting with NGINX and NGINX Plus

  • 令牌桶设置技巧——不做缓冲令牌桶,超速直接返回
    nginx做限速,设置不做缓冲,burst=0不能写在配置文件里,直接不写burst参数默认为0
    增加nodelay参数,立即返回错误

    limit_req zone=xxxx nodelay;

  • 超速默认返回503(Service Unavailable),设置limit_req_status参数可指定返回的错误代码

    limit_req_status 429;

    429(Too Many Requests),参考:RFC 6585 – Additional HTTP Status Codes – IETF Tools

  • limit_req可以配置成Server,Location多个位置