GithubHelp home page GithubHelp logo

Comments (8)

k8s-ci-robot avatar k8s-ci-robot commented on June 20, 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 20, 2024

/remove-kind bug

You can look at 3 pieces of info ;

  • the file nginx.conf inside the controller pod and look at the related block
  • the logs of the controller pod for the http request
  • the relevance of your requested path in context of the ingress rules

Since you have not posted any useful info other than the version of the controller, there is no data to analyse and make helpful comments

You can answer the questions that are asked in the template of a new bug report to help out

/triage needs-information

from ingress-nginx.

elopsod avatar elopsod commented on June 20, 2024

hi
nginx.conf in attachments
nginx.zip

from ingress-nginx.

longwuyuan avatar longwuyuan commented on June 20, 2024

@elopsod posting a nginx.conf does not help as much as needed, or make it easy, to make comments based on data.

  • See my comments earlier
  • Read the questions that are asked in a new bug-report template
  • Edit your issue description
  • Provide answers to the questions asked
  • Ensure to include kubectl describe output for all ingress resources
  • Ensure to include complete curl command and output with -v
  • Ensure to post logs of the controller pod

Also read docs and check the ingress config and nginx.conf yourself . For example if you have one ingress with path as / and pathType as prefix, then that rule matches all and every request, if the hostname is same on all ingresses

from ingress-nginx.

longwuyuan avatar longwuyuan commented on June 20, 2024

Another example of good data to do some analysis, is lack of detailed explainaing.

I may be wrong so please correct me if I am. But I see lack of explaining for a rewrite rule, where the rewrite destination is $1 and the path has only 1 regexp group.

If destination is $1 and the path only has 1 regexp group, then the requested path and the rewritten path are the same. So why do you want to re-write if source and destination are same. Enable rewrite logs and check this

from ingress-nginx.

elopsod avatar elopsod commented on June 20, 2024

hi
sorry for lack of detailed explainaing, more details are below:

based on the configuration above, the routing should look like this

1) https://test-depl.example.com/               should be proxied to upstream 1
2) https://test-depl.example.com/just           should be proxied to upstream 1
3) https://test-depl.example.com/test/pth       should be proxied to upstream 2
4) https://test-depl.example.com/ws/pth         should be proxied to upstream 2

in fact the routing looks like this

1) https://test-depl.example.com/               proxied do upstream 1
2) https://test-depl.example.com/just           proxied do upstream 1
3) https://test-depl.example.com/test/pth       proxied do upstream 2
4) https://test-depl.example.com/ws/pth         proxied do UPSTREAM 1 (error here)

the config for "https://test-depl.example.com/test/pth" and "https://test-depl.example.com/ws/pth" looks like this

kind: Ingress
apiVersion: networking.k8s.io/v1
metadata:
  name: my-ws
spec:
  ingressClassName: nginx
  rules:
    - host: test-depl.example.com
      http:
        paths:
          - path: /ws/
            pathType: Prefix
            backend:
              service:
                name: my-ws
                port:
                  number: 80
          - path: /test/
            pathType: Prefix
            backend:
              service:
                name: my-ws
                port:
                  number: 80

as you can see the only difference is the path field.
but routing occurs on different upstreams

from ingress-nginx.

elopsod avatar elopsod commented on June 20, 2024

by the way if you change path: /ws/ to path: /foo/ - everything works as expected
perhaps this is due to the order of location
nginx.zip

cat /tmp/nginx.conf | grep 'location '
		location ~* "^/test/" {
		location ~* "^/test/" {
		location ~* "^/(.*)" {
		location ~* "^/ws/" {
		location ~* "^/ws/" {
		location ~* "^/" {
		location / {

from ingress-nginx.

github-actions avatar github-actions commented on June 20, 2024

This is stale, but we won't close it automatically, just bare in mind the maintainers may be busy with other tasks and will reach your issue ASAP. If you have any question or request to prioritize this, please reach #ingress-nginx-dev on Kubernetes Slack.

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.