<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <p>
    </p>
    <div class="moz-text-html" lang="x-unicode"> Maxim,<br>
      <br>
      Thank you for your help, as always!  <br>
      <br>
    </div>
    <div class="moz-cite-prefix">On 4/26/2017 5:50 AM, Maxim Dounin
      wrote:<br>
    </div>
    <blockquote type="cite" cite="mid:20170426125056.GR43932@mdounin.ru">
      <pre wrap="">Hello!

On Tue, Apr 25, 2017 at 12:50:24PM -0700, Igal @ Lucee.org wrote:

</pre>
      <blockquote type="cite">
        <pre wrap="">Hello,

I want to secure a site using the allow/deny directives so that only 
allowed networks will be able to access it.  There is one "public" 
directory, however, that I want to be accessible for everyone.

nginx serves as a reverse proxy on that site, and requests for URIs that 
end with the suffix ".cfm" are proxied to Tomcat.

So I currently have something like:

location / {
     allow 10.0.0.0/24;
     deny all;
}

location /public/ {
     allow all;    # does that make sense?
}

location ~ \.cfm$ {
     ## proxy settings go here
}

Keep in mind that .cfm scripts are both in /public/ as well as in other 
directories.

How can I achieve that?
</pre>
      </blockquote>
      <pre wrap="">
Try this instead:

    location / {
        allow ...
        deny all;

        location ~ \.cfm$ {
            ...
        }
    }

    location /public/ {
        # access allowed to all by default - unless there is 
        # something restrictive defined on previous levels

        location ~ \.cfm$ {
            ...
        }
    }

You may also find this talk interesting:

<a class="moz-txt-link-freetext" href="https://youtu.be/YWRYbLKsS0I">https://youtu.be/YWRYbLKsS0I</a>

</pre>
    </blockquote>
    <br>
    Igal Sapir
    <br>
    Lucee Core Developer
    <br>
    <a href="http://lucee.org/">Lucee.org</a>
  </body>
</html>