[Nginx] 访问控制
限制 IP 访问#
需求
有一个后台,只允许由公司内部发送访问,不支持其他地方访问,这个时候就需要使用IP 地址进行访问控制啦~
location /admin/ {
deny 10.0.0.1;
allow 10.0.0.0/20;
allow 2001:0db8::/32;
deny all;
}
如上所示, deny
指令限制不能访问的IP, allow
指令允许能够访问的IP,从上到下执行匹配,直到最后一个配置为止。
配置跨域访问#
CORS 跨域说明,资源跨域共享的方法很多,这里就说说如何使用 Nginx 来配置资源支持跨域访问。
配置方法:
map $request_method $cors_method {
OPTIONS 11;
GET 1;
POST 1;
default 0;
}
server {
location / {
if ($cors_method ~ '1') {
add_header 'Access-Control-Allow-Methods' 'GET,POST,OPTIONS';
add_header 'Access-Control-Allow-Origin' '*.example.com';
add_header 'Access-Control-Allow-Headers' 'DNT,
Keep-Alive, User-Agent, X-Requested-With, If-Modified-Since, Cache-Control, Content-Type';
}
if ($cors_method = '11') {
add_header 'Access-Control-Max-Age' 1728000;
add_header 'Content-Type' 'text/plain; charset=UTF-8';
add_header 'Content-Length' 0;
return 204;
}
}
}
当浏览器发现请求是一个跨域请求时,会先发送一个 OPTIONS HTTP 方法,用来检测服务端是否支持跨域。如果支持,就会发送正常的 HTTP 请求方法。
作者:Soul
出处:https://www.cnblogs.com/sooooooul/p/17450359.html
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步