首页 > 解决方案 > 如何为微服务设计 Nginx 位置?

问题描述

我们有 10 个基于微服务的应用程序。他们每个人都有大约 15 项服务。因此,我们的产品有 150 个不同的服务 URL。

我的问题:如何设计 Nginx 位置?

1) 每个应用程序一个位置

2) 每个 URL 一个位置

3) 其他方式

我认为有一些东西可以权衡。

一个。配置复杂度

湾。冲突地点问题

C。微服务重构时的情愫

d。nginx.conf 大小

有人可以给我一些指导或最佳实践吗?

标签: nginxmicroservices

解决方案


只是给你一个我自己的配置的例子。我不能说这是最好的方法,但在编造这个之前我确实参考/阅读了很多博客。

worker_processes 1;

events { worker_connections 10000; }

http {

  sendfile on;

  gzip              on;
  gzip_http_version 1.0;
  gzip_proxied      any;
  gzip_min_length   999;
  gzip_disable      "MSIE [1-6]\.";
  gzip_types        text/plain text/xml text/css
                    text/comma-separated-values
                    text/javascript
                    application/x-javascript;

  # List of application servers
  upstream company_api_servers {

  server company.xxxx.xxxx:port_number;

  }
  upstream community_api_servers {

  server community.xxxx.xxxx:port_number;

  }
  upstream devices_api_servers {

  server devices.xxxx.xxxx:port_number;

  }


    # Configuration for the server
    server {

    # Running port
    listen 80;

    # Proxying the Companies API
    location /companies {

    proxy_pass         http://company_api_servers;
    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;

    }
    # Proxying the Communities API
    location /communities {

    proxy_pass         http://community_api_servers;
    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;

    }
    # Proxying the Devices API
    location /devices {

    proxy_pass         http://devices_api_servers;
    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;

    }
  }
}

推荐阅读