Open elopsod opened 8 months ago
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.
/remove-kind bug
You can look at 3 pieces of info ;
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
@elopsod posting a nginx.conf does not help as much as needed, or make it easy, to make comments based on data.
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
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
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
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 / {
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.
have the same problem
have the same problem
What happened: hi
we have next config
1) https://test-depl.example.com/ work as expected
2) https://test-depl.example.com/just work as expected
3) https://test-depl.example.com/test/pth work as expected
4) https://test-depl.example.com/ws/pth response should same as for 3 (https://test-depl.example.com/test/pth), but got same as 1, 4
What you expected to happen: for option 4 should be same response as option 3
something with location priority
Environment:
NGINX Ingress controller version (exec into the pod and run nginx-ingress-controller --version.):
Kubernetes version (use
kubectl version
):