Nginx禁止跨域

禁止除了192.168.90.32外其他域名进行访问。

全局限制

http {
	......
	
    map $http_origin $allow_cros {
        default 1;
        "~^(https?://(192.168.90.32)(:[0-9]+)?)$" 1;
        "~*" 0;
    }
	
    server {
        ......
	    if ($allow_cros = 0){
            return 403;
        }
			
        location xxx {
			proxy_pass xxxx
        }
}

其中 ~^(https?://(192.168.90.32)(:[0-9]+)?)$

意为:允许http或https,192.168.90.32的所有端口

日志格式:重点为最后2个

log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for" '
                      'proxy_host:"$proxy_host" http_host:"$http_host" host:"$host"'
                      'ups_addr:$upstream_addr req_time:"$request_time" ups_status:$upstream_status ups_resp_time:"$upstream_response_time"'
                      'cors:$allow_cros origin:$http_origin';

从日志看结果:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Nginx 中配置跨域(CORS)是为了允许来自不同源或协议的网页向你的服务器发起AJAX请求,通常在API服务中常见。Nginx 配置跨域可以通过修改 `http` 或 `server` 模块下的 `add_header` 和 `allow` 子指令来实现。 默认情况下,Nginx 不允许跨域请求,但你可以设置允许特定来源的访问。以下是一个基本的 CORS 配置示例: ```nginx location /api { add_header 'Access-Control-Allow-Origin' '*'; # 允许所有来源 add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS'; add_header 'Access-Control-Allow-Headers' 'Content-Type, Authorization'; if ($request_method = 'OPTIONS') { add_header 'Access-Control-Max-Age' 1728000; # 响应预检请求的时间,单位秒 add_header 'Content-Length' 0; return 204; } } ``` 这里解释一下关键配置项: - `Access-Control-Allow-Origin`: 设置允许的源,星号 (*) 表示所有源都可以,如果你只想允许特定的源,可以换成实际的域名或URL。 - `Access-Control-Allow-Methods`: 允许的方法类型,如 GET、POST等。 - `Access-Control-Allow-Headers`: 允许的HTTP头部信息。 - `if ($request_method = 'OPTIONS')`: 当请求类型为 OPTIONS(预检请求),用于检查服务器是否允许跨域,返回 204 表示成功。 如果你想禁止跨域,可以不添加这些 `add_header` 指令,或者将它们注释掉。但通常情况下,为了兼容现代浏览器的同源策略和安全需求,允许跨域是必要的。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值