如何为微服务设计Nginx位置?

时间:2018-09-20 16:47:27

标签: nginx microservices

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

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

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

2)每个网址一个位置

3)其他方式

我认为需要权衡取舍。

a。配置复杂度

b。冲突位置问题

c。微服务重构时的情感

d。 nginx.conf大小

有人可以给我一些指导或最佳做法吗?

1 个答案:

答案 0 :(得分:0)

仅举一个我自己的配置示例。我不能说这是最好的方法,但是在整理之前,我确实参考了很多博客。

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;

    }
  }
}