Code Monkey home page Code Monkey logo

Comments (5)

k8s-ci-robot avatar k8s-ci-robot commented on June 2, 2024

This issue is currently awaiting triage.

If Ingress contributors determines this is a relevant issue, they will accept it by applying the triage/accepted label and provide further guidance.

The triage/accepted label can be added by org members by writing /triage accepted in a comment.

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

from ingress-nginx.

longwuyuan avatar longwuyuan commented on June 2, 2024

/remove-kind bug

@gogojlb its possible that your issue-description is too cryptic and succint

  • if you can help and assume readers may not know all details, kindly try and begin with stating if this https://kubernetes.github.io/ingress-nginx/user-guide/fcgi-services/ works for you or not. The key aspect being the pod in the deployment runs a fpm process listening on port 9000 and that is exposed via a ingress. Relevance being your example yaml is using a nginx:blah image which is a plain old nginx webserver and not a image that contains fpm and hence does not run a fpm process
  • if the example in the link above works and a second deployment by you consumes that ingress hostname as the fpm upstream (for some php files in that second deployment) then it fits the example of a typical cgi offload to php-fpm

I am not a developer so I do not understand the use case of a HTTPS variable in the configMap but I was hoping to reproduce and actually understand the reproduced problem in the context of knowing ;

  • where my webserver is
  • where the php files are
  • what and where the fpm server is
  • how my webserver is configured to use & consume the fpm server for which I have created a ingress as per example in docs

Reason being first we deprecated fpm support, after a survey that supported deprecation decision. Then someone said they use it & want it so we reverted and got confirmation that fcgi for fpm feature was working. And this issue is a report that something is wrong with that feature. Now there are not too many resources available to look into this so the simplification of the issue description actually goes a long way in triaging

/triage needs-information

from ingress-nginx.

longwuyuan avatar longwuyuan commented on June 2, 2024

/assign

from ingress-nginx.

gogojlb avatar gogojlb commented on June 2, 2024

Hi @longwuyuan , thanks for your attention to this issue and sorry for the confusion. Let me clarify it a bit.

it is not the fcgi functionality itself that is at issue here, but just ingress/configmap objects validation.
I'm assuming that ingress-nginx supports the same set of fcgi parameters as plain nginx.
In that case, while parameter values specified with if_not_empty are valid from nginx/ngx_http_fastcgi_module perspective, they are not valid from nginx-ingress perspective due strict validation regex that doesn't allow a space.

err="fcgi contains invalid key or value" configmap="test-fcgi" namespace="test-fcgi" key="HTTPS" value="$https if_not_empty"

If my assumptions are correct, I can also hypothesize that the problem can be solved by modifying the regexp to e.g. ^[A-Za-z0-9\-\_\$\{\}/.]*( if_not_empty){0,1}$.

using a nginx:blah image which is a plain old nginx

It is just a dummy nginx deployment to provide target for the ingress/service.

from ingress-nginx.

longwuyuan avatar longwuyuan commented on June 2, 2024

Ah thanks for the clarification. Helps a lot.

I am not a developer so cant say for sure but I think the fcgi parameters will have been implemented in go or lua and thus less likely that all the parameters would be honored in a confgMap (specially one with a space). I will check to what limit I can but please don't wait for me.

Hoping someone else will have more helpful comments.

from ingress-nginx.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.