我正在寻找一些关于负载平衡的指导/评论,我正在开发一个web API。
以下是我目前正在做的,但我在质疑:
我的文件结构如下:
mainApp
app
main.py
Dockerfile
requirements.txt
nginx
Dockerfile
nginx.conf
主要的派克
app = FastAPI()
@app.get("/")
def read_root():
return {"Served From": str(os.getpid())}
Dockerfile(主应用内)
FROM tiangolo/uvicorn-gunicorn-fastapi:python3.7
RUN pip install --upgrade pip
WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY . /app
Dockerfile(nginx内部)
FROM nginx
RUN rm /etc/nginx/conf.d/default.conf
COPY nginx.conf /etc/nginx/conf.d/
nginx。形态
upstream loadbalancer {
server 192.168.80.12:8080;
server 192.168.80.12:8081;
}
server {
listen 80;
location / {
proxy_pass http://loadbalancer;
}
}
默认情况下,docker映像中的uvicorn
将使用与服务器上可用CPU相同数量的工作线程。默认情况下,工作进程的最小数量为2(因此,如果您只有一个内核,则仍将启动两个工作进程来处理请求)。
然后,工作进程pid将根据哪个uvicorn工作进程处理您的连接而更改。
WORKERS_PER_CORE此映像将检查运行容器的当前服务器中有多少CPU内核可用。
它将工人数量设置为CPU核心数量乘以该值。
默认情况下:
1
你可以这样设置:
docker run-d-p 80:80-e WORKERS\u PER_CORE=“3”myimage
如果在具有2个CPU内核的服务器中使用值3,它将运行6个工作进程。
也可以使用浮点值。
例如,如果您有一个运行多个应用程序的大型服务器(比如说,有8个CPU核),并且您有一个不需要高性能的FastAPI应用程序。您不想浪费服务器资源。您可以让它每个CPU核心使用0.5个工人。例如:
docker run-d-p 80:80-e WORKERS\u PER\u CORE=“0.5”myimage
在具有8个CPU核的服务器中,这将使其仅启动4个工作进程。
注意:默认情况下,如果WORKERS_PER_CORE是1,服务器只有1个CPU核心,而不是启动1个单个工人,它将启动2个。这是为了避免小机器(服务器机器/云/等)上的性能不佳和阻塞应用程序(服务器应用程序)。这可以使用WEB_CONCURRENCY重写。
相反,您可以使用socket。gethostname()
获取提供服务的docker容器的主机名,并查看其是否不同。另一个选项是查看容器本身的日志-默认情况下,映像启用了访问日志(或者自己将一些内容输出到stdout),并查看两个容器都接收请求。您可以使用docker logs
查看容器的日志。
我正在尝试使用前端NGINX 1.6.2负载平衡器来平衡API Manager 1.9.0。我有两台服务器: 服务器A(xxx.xxx.xxx.xx1和xxx.xxx.xxx.x11)-公共和私有IP服务器B(xxx.xxx.xxx.xx2和xxx.xxx.xxx.x22)-公共和私有IP API Manager 1.9.0和所有四个组件都在服务器B上安装和启动。 我在服务器A上安装了NGINX,
本文向大家介绍详解Centos7.2安装Nginx实现负载平衡,包括了详解Centos7.2安装Nginx实现负载平衡的使用技巧和注意事项,需要的朋友参考一下 下载Nginx 到官网下载源码文件,地址:http://nginx.org/en/download.html,选择最新版本。本人下载的地址为:http://nginx.org/download/nginx-1.10.2.tar.gz,可用w
本文向大家介绍Centos7.2安装Nginx实现负载平衡的方法,包括了Centos7.2安装Nginx实现负载平衡的方法的使用技巧和注意事项,需要的朋友参考一下 下载Nginx 到官网下载源码文件,地址:http://nginx.org/en/download.html,选择最新版本。本人下载的地址为:http://nginx.org/download/nginx-1.10.2.tar.gz,可
本文向大家介绍使用Nginx实现负载均衡的策略,包括了使用Nginx实现负载均衡的策略的使用技巧和注意事项,需要的朋友参考一下 一、nginx简介 nginx是一个高性能的HTTP服务器和反向代理服务器。它起初是俄罗斯人Igor Sysoev开发的,至今支撑者俄罗斯的很多大型的网站。 二、nginx支持的三种负载均衡策略 轮询:将请求依次轮询发给每个服务器。 最少链接:将请求发送给持有最少活动链接
本文向大家介绍nginx+tomcat实现负载均衡,使用redis session共享,包括了nginx+tomcat实现负载均衡,使用redis session共享的使用技巧和注意事项,需要的朋友参考一下 环境准备 1、准备一台nginx服务器 ip192.168.1.133 端口81 安装过程: 准备一台tomcat服务器,先准备java环境,安装jdk步骤省略 然后分别安装3个tomcat
我需要一些nginx负载平衡方面的帮助。我有一个docker实例,它服务于一个静态网页,它有两个容器,比如说192.168。1.1:8081 - 当我输入这些IP地址192.168.1.1时,这些IP必须服务于我的两个站点之间的负载。 在我的Nginx中,我必须为此设置两个文件 Nginx。conf,在这些文件中,我必须包含我的默认值。conf文件。违约conf文件包含以下信息。 当我键入192.