serving static files from ingress-nginx

2019-06-15 19:12发布

问题:

I have a express web server with static files. Let's call this my express-deployment.

I'd like to use my ingress-nginx to serve static files from my express-deployment without ever actually hitting my express server.

In nginx this is done with the location directive where you point to files locally hosted. While I see an option for locations-snippet in the ingress-nginx configMap, I'm not entirely sure how I would have this point to files in another container.

Is this possible with ingress-nginx? If so how would I go about it? Alternatively, is this something that requires an nginx container to be hosted along side my express server? (Seems odd that I would need 2 nginx for that)

回答1:

In theory, you could have a PV in in RWX mode mounted to both express and ingress and provide custom config to the nginx-ingress pods, but that should be avoided. Ingress Controller has one responsibility - implement Ingress rules defined in your cluster. To serve static content you should have a pod that does that, which indeed means ie. running second nginx in your stack. The thing is, that you should treat your ingress controller as part of the infrastructure providing generic cluster functionality, and serving static files from some place (or container if they are versioned/built as docker images) is de facto part of your application.