在Kubernetes上使用Nginx SSL代理运行Meteor应用程序

前端之家收集整理的这篇文章主要介绍了在Kubernetes上使用Nginx SSL代理运行Meteor应用程序前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我在Google Cloud上使用Kubernetes部署了一个Meteor应用程序,配置了Nginx作为SSL终止.一切正常.

但是,似乎如果两个不同的客户端连接到两个不同的SSL容器,则更新不会在相应的应用程序上显示最多10秒,这使得Websockets看起来不起作用,但轮询正在生效.我已确认所有客户端都与Websockets连接,但由于更新不会立即传播,因此Nginx可能未配置为与Meteor应用程序正确通信.

这是我的SSL / Nginx服务:

apiVersion:v1
种类:服务
元数据:
  名称:frontend-ssl
  标签
    名称:frontend-ssl
规格:
  端口:
   – 名称:http
    港口:80
    targetPort:80
   – 名称:https
    港口:443
    targetPort:443
  选择:
    名称:frontend-ssl
  type:LoadBalancer
  loadBalancerIP:123.456.123.456
  sessionAffinity:ClientIP

这是Meteor服务:

apiVersion:v1
种类:服务
元数据:
  名称:前端
  标签
    名称:前端
规格:
  端口:
   – 港口:3000
    targetPort:3000
  选择:
    name:flow-frontend
  type:LoadBalancer
  loadBalancerIP:123.456.123.456
  sessionAffinity:ClientIP

对于SSL终止,我使用Kubernetes建议的SSL设置与Websockets添加https://github.com/markoshust/nginx-ssl-proxy分叉

最佳答案
在你的Nginx配置中,你是否确保每次都使用ip_hash标志将websockets定向到同一台服务器?您还需要确保转发websocket升级标头:

  1. upstream meteorapp{
  2. ip_hash;
  3. server hostname:port
  4. }
  5. server {
  6. # your server stuff here
  7. #
  8. location / {
  9. proxy_pass http://meteorapp;
  10. proxy_set_header Host $host;
  11. proxy_set_header X-Real-IP $remote_addr;
  12. proxy_http_version 1.1;
  13. proxy_set_header Upgrade $http_upgrade;
  14. proxy_set_header Connection "upgrade";
  15. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  16. proxy_set_header X-Forwarded-Proto http;
  17. proxy_redirect http:// $scheme://;
  18. }
  19. }

猜你在找的Nginx相关文章