<p>I added a default <code>nginx-ingress</code> deployment with a regional IP that I got from GCP.</p>
<pre class="lang-sh prettyprint-override"><code>helm install nginx-ingress \
             nginx-stable/nginx-ingress \
             --set rbac.create=true \
             --set controller.service.loadBalancerIP=&quot;&lt;GCP Regional IP&gt;&quot;
</code></pre>
<p>I have a dockerized node app with a single .js file. Which I deployed with a basic helm chart. The service is called node-app-blue-helm-chart</p>
<pre><code>const http = require('http');

const hostname = '0.0.0.0';
const port = 80;

const server = http.createServer((req, res) =&gt; {
    if (req.url == '/another-page'){
        res.statusCode = 200;
            res.setHeader('Content-Type', 'text/html');
                res.end('&lt;h1&gt;another page&lt;/h1&gt;');

    } else {
        res.statusCode = 200;
            res.setHeader('Content-Type', 'text/html');
                res.end('&lt;h1&gt;Hello World&lt;/h1&gt;');
    }
});

server.listen(port, hostname, () =&gt; {
    console.log('Server running at http://%s:%s/', hostname, port);
});

process.on('SIGINT', function() {
    console.log('Caught interrupt signal and will exit');
    process.exit();
});
</code></pre>
<p>I deployed following ingress resource:</p>
<pre><code>apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: ingress-resource
  annotations:
    kubernetes.io/ingress.class: nginx
    nginx.ingress.kubernetes.io/ssl-redirect: &quot;false&quot;
spec:
  rules:
  - host: &quot;*.example.com&quot;
    http:
      paths:
      - path: /*
        pathType: Prefix
        backend:
          service:
            name: node-app-blue-helm-chart
            port:
              number: 80
</code></pre>
<p>Although ingress resource acquires IP and endpoint. It still returns 404 error. What can be wrong? Can <code>host: &quot;*.example.com&quot;</code> section be a problem?</p>
<p>More info:</p>
<pre><code>kubectl describe ing ingress-resource
Name:             ingress-resource
Namespace:        default
Address:          &lt;GCP Regional IP&gt;
Default backend:  default-http-backend:80 (10.0.0.2:8080)
Rules:
  Host           Path  Backends
  ----           ----  --------
  *.example.com  
                 /*   node-app-blue-helm-chart:80 (10.0.0.15:80)
Annotations:     kubernetes.io/ingress.class: nginx
                 nginx.ingress.kubernetes.io/ssl-redirect: false
Events:          &lt;none&gt;


kubectl describe svc node-app-blue-helm-chart
Name:              node-app-blue-helm-chart
Namespace:         default
Labels:            app.kubernetes.io/instance=node-app-blue
                   app.kubernetes.io/managed-by=Helm
                   app.kubernetes.io/name=helm-chart
                   app.kubernetes.io/version=1.16.0
                   helm.sh/chart=helm-chart-0.1.0
Annotations:       meta.helm.sh/release-name: node-app-blue
                   meta.helm.sh/release-namespace: default
Selector:          app.kubernetes.io/instance=node-app-blue,app.kubernetes.io/name=helm-chart
Type:              ClusterIP
IP Families:       &lt;none&gt;
IP:                10.3.248.13
IPs:               10.3.248.13
Port:              http  80/TCP
TargetPort:        80/TCP
Endpoints:         10.0.0.15:80
Session Affinity:  None
Events:            &lt;none&gt;
</code></pre>
<p>What I tried:</p>
<p>Removing * from /* in ingress resource. Didn't fix the issue.</p>
<pre><code>kubectl describe ing ingress-resource
Name:             ingress-resource
Namespace:        default
Address:          W.X.Y.Z
Default backend:  default-http-backend:80 (10.0.0.2:8080)
Rules:
  Host           Path  Backends
  ----           ----  --------
  *.example.com  
                 /   node-app-blue-helm-chart:80 (10.0.0.15:80)
Annotations:     kubernetes.io/ingress.class: nginx
                 nginx.ingress.kubernetes.io/ssl-redirect: false
Events:
  Type    Reason          Age        From                      Message
  ----    ------          ----       ----                      -------
  Normal  AddedOrUpdated  &lt;invalid&gt;  nginx-ingress-controller  Configuration for default/ingress-resource was added or updated
</code></pre>

bcan
<p>Try to edit your Ingress. You have set a <code>path=/*</code>, which may not be what you meant to do. A <code>/</code> should do:</p>
<pre><code>[...]
spec:
  rules:
  - host: &quot;*.example.com&quot;
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: node-app-blue-helm-chart
            port:
              number: 80
</code></pre>
