Piwik conf file

Francis Daly francis at daoine.org
Wed Aug 21 18:22:06 UTC 2013

On Tue, Aug 20, 2013 at 04:05:09PM -0700, Paul N. Pace wrote:
> On Tue, Aug 20, 2013 at 2:44 PM, Francis Daly <francis at daoine.org> wrote:
> > On Mon, Aug 19, 2013 at 02:53:36PM -0700, Paul N. Pace wrote:

Hi there,

> >> I am trying to set up a conf file for Piwik installations and I'm
> >> hoping a second set of of eyes can help:
> >
> > In nginx one request is handled in one location. The rules for selecting
> > the location are at http://nginx.org/r/location

> Yes, I fixed that by changing to /piwik/js/ - is this the right way to
> enter it?

It really depends on what the actual urls that are requested are, and
how you want them to be handled.

In this case, I don't see what the /piwik/js/ location does -- because
it sets a directive to its default value, and you haven't shown it set
to a non-default value anywhere.

> Here is what the file would read now:
> location /piwik/ {

I would probably make that one be "location ^~ /piwik/" -- it may not
make a difference, depending on what else is in your config file.

>     location ~ /piwik/js/.*\.php$ {
>         include /etc/nginx/global-configs/php.conf;
>     }
>     location ~ /piwik/piwik.php$ {

That one will match the requests /piwik/piwikXphp and /piwik/Y/piwikXphp,
for any single character X and for any multi-character Y.

It may be that, for the requests you care about, that is exactly the same as

  location = /piwik/piwik.php

> > Can you list some of the requests that you want to have handled, and
> > how you want them to be handled? That might help someone who knows nginx
> > but not piwik to understand what the intention is.

> >> Piwik seems trickier than other applications because certain
> >> components must be available through HTTP sessions or else browsers
> >> give scary warnings or don't load the tracking code, but I want to
> >> force the Piwik dashboard to open in HTTPS.
> >
> > These words don't obviously directly translate to your config file
> > snippet above. What request is the Piwik dashboard? What request is
> > certain components?
> The Piwik dashboard is located in /piwiki/index.php, and that is what
> always needs to be served securely.

So, in the "http-only" server:

  location = /piwiki/index.php {
    return 301 https://www.unpm.org$request_uri?;

and in the "https" server:

  location = /piwiki/index.php {
    # whatever it should be, probably "include php.conf"

> The tracking code for Piwik is loaded with either /piwik/js/index.php,
> /piwik/piwik.php, or the /piwik/js/ directory, depending on various
> client or server configurations.

/piwik/piwik.php is handled above; everything ending in ".php" in
/piwik/js/ is handled above. Everything else in /piwik/js/ comes from
the filesystem.

Are there specific urls that do not respond the way you expect?

Francis Daly        francis at daoine.org

More information about the nginx mailing list