nginx设置访问白名单(ip)

本文介绍了一个具体的Nginx配置案例,详细展示了如何设置HTTPS,并配置反向代理将请求转发到API服务器。此外,还包括了限制IP访问、屏蔽特定User-Agent及保护敏感目录的内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

针对要配置的域名配置文件:

server {
    listen       443;
    server_name  abc.com;
    #access_log  /server/nginx/log/abc.com.log  main;
    ssl         on;
    ssl_certificate      /server/nginx/sslcom/domain.cer;
    ssl_certificate_key  /server/nginx/sslcom/domain.key;
    ssl_session_timeout  5m;
    #ssl_protocols  SSLv3 TLSv1.1 TLSv1.2;
    ssl_protocols  TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers    HIGH:!ADH:!EXPORT56:RC4+RSA:+MEDIUM;
    ssl_prefer_server_ciphers   on;
    allow 120.122.122.144;
    allow 192.168.0.3;
    deny all;
    #拒绝一些 user-agent
        if ($http_user_agent ~* LWP::Simple|BBBike|wget|Python-urllib|webscan\.360\.cn) {
            return 404;
        }


    #反向代理到api服务器
    
    location ^~/.svn{
        deny all;
    }
    location ^~/.git{
        deny all;
    }
 
    location / {
        proxy_pass http://11.11.11.11:1002;
    }
}

Nginx设置IP白名单通常是为了限制只有特定IP地址或IP地址范围的请求才能访问服务器资源。这有助于增强安全性,防止未授权的访问。以下是在Nginx配置文件(如`nginx.conf`)中设置IP白名单的基本步骤: 1. **创建白名单文件**: 首先,你可以创建一个文本文件(例如`whitelist.txt`),列出所有允许的IP地址。 2. **配置Nginx**: 打开Nginx的主配置文件,在server块里添加一个新的location配置,并指定使用`proxy_protocol on;`启用代理协议,这样可以读取原始客户端IP地址。然后,使用`proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;`设置真实IP头部信息,以获取客户端IP。 ```nginx location / { if ($proxy_protocol_addr !~ whitelist.txt) { return 403; # 返回禁止访问错误 } ... } ``` 这里,我们使用`if`条件判断`$proxy_protocol_addr`是否存在于`whitelist.txt`文件中,如果不是,则返回403 Forbidden错误。 3. **更新白名单文件**: 每次需要添加新的IP地址时,只需将其追加到`whitelist.txt`文件中,重启Nginx使其应用新的规则。 请注意,这不是一个完整的配置示例,实际部署时可能需要根据你的需求调整配置,并考虑其他安全措施,比如使用正则表达式匹配IP范围。另外,如果你的IP列表很长,这种方法可能会变得复杂且管理起来不方便,这时可以考虑使用防火墙、负载均衡等更专业的解决方案。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值