<p>I need to point Ingress to images so that my Pods gets the URL, in full. I have the below config:</p>

<pre><code>apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: solar-demo
  annotations:
    nginx.org/server-snippet: "proxy_ssl_verify off;"
    nginx.ingress.kubernetes.io/rewrite-target: /
spec:
  rules:
  - host: shmukler.example.com
    http:
      paths:
      - path: /city/*
        backend:
          serviceName: solar-demo
          servicePort: 3000
      - path: /solar/*
        backend:
          serviceName: solar-demo
          servicePort: 3001
</code></pre>

<p>If I keep the line: <code>nginx.ingress.kubernetes.io/rewrite-target: /</code>, my services inside the Pods get the rewritten paths, so <code>/city/dublin</code> becomes <code>/dublin</code>.</p>

<p>If I comment out the line <code>nginx.ingress.kubernetes.io/rewrite-target: /</code>, I just get <code>503</code> errors on the client side, and nothing in the logs. With rewrite, my services give me <code>404</code> because there is no route <code>/dublin</code>.</p>

<p>What am I doing wrong? How could I just pass the path on and have the Pods respond?</p>

<pre><code>$ kubectl describe svc solar-demo
Name:              solar-demo
Namespace:         default
Labels:            &lt;none&gt;
Annotations:       kubectl.kubernetes.io/last-applied-configuration= 
{"apiVersion":"v1","kind":"Service","metadata":{"annotations":{},"name":"solar-demo","namespace":"default"},"spec":{"ports":[{"name":"city","port":3000...
Selector:          app=testapp
Type:              ClusterIP
IP:                10.107.221.76
Port:              city  3000/TCP
TargetPort:        3000/TCP
Endpoints:         172.17.0.3:3000,172.17.0.8:3000
Port:              solar  3001/TCP
TargetPort:        3001/TCP
Endpoints:         172.17.0.3:3001,172.17.0.8:3001
Session Affinity:  None
Events:            &lt;none&gt;
</code></pre>

<p>Suggestions?</p>

Moshe Shmukler
<p>Here should be a working config:</p>

<pre><code>apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: solar-demo
  annotations:
    kubernetes.io/ingress.class: "nginx"
spec:
  rules:
  - host: shmukler.example.com
    http:
      paths:
      - path: /city
        backend:
          serviceName: solar-demo
          servicePort: 3000
      - path: /solar
        backend:
          serviceName: solar-demo
          servicePort: 3001
</code></pre>

<p>What changed:</p>

<ul>
<li>Removed <code>*</code> from paths</li>
<li>Specified ingress in the annotation</li>
<li>Removed re-write annotation</li>
</ul>

<p>The <code>path</code> on an ingress (when using an <code>nginx</code> ingress) is like specifying the nginx <code>location</code> block. <code>nginx</code> does not use the <code>*</code> character in location blocks.</p>
