Configuring nginx for both static pages and fcgi simultaneously

Denis Papathanasiou denis.papathanasiou at gmail.com
Sun Jul 31 22:55:54 UTC 2016


I have the following configuration file defined in
/etc/nginx/conf.d/my-project.conf (this is on debian).

It does what I want, in that it serves static contet in the /css, /images,
/js folders along with index.html correctly.

And for dynamic requests (I'm running an fcgi-enabled server on port 9001)
to /contact, /login, and /singup it also works correctly.

I would just like to be able to declare that anything *except* index.html,
/css, /images, and /js, it should all go to the fcgi server.

I've experimented with various definitions of "location", but the only
one that seems to work is the one I have below, where all the possible
fcgi paths are defined explicitly.

Is there a better, simpler way of doing this?

server {
  listen   80;
  listen   [::]:80 default_server ipv6only=on; ## listen for ipv6
  server_name  localhost;
  root   /var/www/my-project/html;

  location / {
    index  index.html;
  }

  location /images/ {
    root   /var/www/my-project/html;
  }
  location /css/ {
    root   /var/www/my-project/html;
  }
  location /js/ {
    root   /var/www/my-project/html;
  }

  location ~ ^/(contact|login|signup)$ {
    include /etc/nginx/fastcgi_params;
    fastcgi_pass  127.0.0.1:9001;
  }
}
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.nginx.org/pipermail/nginx/attachments/20160731/e7a12522/attachment.html>


More information about the nginx mailing list