Nginx反向代理到kubernetes中的Web应用程序为静态Web资源提供404

时间:2019-09-17 19:55:36

标签: nginx kubernetes-ingress nginx-reverse-proxy

您好,nginx的非凡之作

我正在使用nginx作为负载平衡器和反向代理,以充当面向外部的API网关的角色,以连接Kubernetes中托管的应用程序和api。这些都是通过入口暴露的

enter image description here

我面临的问题是,当我尝试通过 / test URL

访问标准的角度网络应用程序时,nginx给了我404错误

看到错误:

enter image description here

Nginx使用以下配置进行设置- nginx.conf

    events {
worker_connections  1024;
}

http {

access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;

ssl                       on;
ssl_certificate           /etc/letsencrypt/live/myhostname/fullchain.pem;
ssl_certificate_key       /etc/letsencrypt/live/myhostname/privkey.pem;

client_max_body_size      1G;

upstream k8snodes {
  server 192.168.2.10; 
  server 192.168.2.11;
}

server {
    listen                  443 ssl;

    location / {
      proxy_pass            http://k8snodes/;
      proxy_redirect        off;
      proxy_set_header      Host $host;
      proxy_set_header      X-Real-IP $remote_addr;
      proxy_set_header      X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header      X-Forwarded-Host $server_name;
      proxy_set_header      X-Forwarded-Proto $scheme;
    }

    include /etc/nginx/conf.d/*.conf;
 }

 }

位于 / test 后面的是Kubernetes入口控制器,该控制器为角度应用提供服务。我可以确认直接通过Ingress可以很好地访问应用程序,因此nginx对此感到不满意。

入口配置

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  creationTimestamp: "2019-09-14T07:43:49Z"
  generation: 2
  name: test-ingress
  namespace: default
  resourceVersion: "12193067"
  selfLink: /apis/extensions/v1beta1/namespaces/default/ingresses/test- 
ingress
  uid: f8c5ea11-9caf-431e-9a18-19bd3981eece
spec:
  rules:
  - host: myhostname
    http:
      paths:
      - backend:
          serviceName: test-svc
          servicePort: 80
        path: /test
status:
  loadBalancer:
    ingress:
    - {}

在Nginx配置上我做错了什么吗?我还有其他可以反向代理的API,似乎是Web应用程序试图提供问题的静态文件

0 个答案:

没有答案