如何通过Nginx.conf允许访问单个资源/网址?

时间:2017-03-07 14:10:19

标签: symfony nginx

我有一个基于api的symfony项目与nginx。我想允许某些特定的IP地址访问网址。以下是我所做的配置。但它不起作用。我使用邮递员从我自己的机器上请求512条前置条件失败。

location /requests/users {
    if ($request_method = 'GET') {
        proxy_set_header   X-Real-IP $remote_addr;
        proxy_set_header   Host      $http_host;
        proxy_pass         http://127.0.0.1:80;

        allow   my_public_ip;
    }
    else{
        return 405;
    }    
}

1 个答案:

答案 0 :(得分:0)

另一种方法是你可以使用Symfony获取客户端IP并根据客户端IP控制访问。

    $allowedIP = []; // allowed IP List

    $clientIP = $this->container->get('request')->getClientIp();

    if(!in_array($clientIP,$allowedIP)){
         throw new AccessDeniedHttpException(sprintf('You are not granted access to this API'));
    }