nginx - 如何为微服务设计 Nginx 位置?
问题描述
我们有 10 个基于微服务的应用程序。他们每个人都有大约 15 项服务。因此,我们的产品有 150 个不同的服务 URL。
我的问题:如何设计 Nginx 位置?
1) 每个应用程序一个位置
2) 每个 URL 一个位置
3) 其他方式
我认为有一些东西可以权衡。
一个。配置复杂度
湾。冲突地点问题
C。微服务重构时的情愫
d。nginx.conf 大小
有人可以给我一些指导或最佳实践吗?
解决方案
只是给你一个我自己的配置的例子。我不能说这是最好的方法,但在编造这个之前我确实参考/阅读了很多博客。
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;
}
}
}
推荐阅读
- sql - 如何在 Teradata SQL 中为不存在的关系“创建”NULL 数据
- c# - Linqpad 图表。Column 和 StackedColumn 的组合
- postgresql - ConstraintViolationException 对 Postgres 的性能有影响吗?
- python-unittest - 如何编写单元测试用例以在 Python 中检查与 SQL 服务器的数据库连接?
- sql - SQL:如何通过知道当前值来找到初始值和每一行的值?
- docker - docker的CI管道?
- javascript - 将 onclick 弹出框显示到特定 id
- r - 枚举 data.table 中组内的组
- javaagents - Lotus Notes 代理:java.io.IOException:访问被拒绝
- java - 在 H2 数据库中插入一个空白字符