首页 > 系统相关 >sanic+nginx配置负载均衡--一台服务器上开启多个站点,用同一个nginx代理

sanic+nginx配置负载均衡--一台服务器上开启多个站点,用同一个nginx代理

时间:2023-03-08 19:59:01浏览次数:54  
标签:weight -- 端口 server nginx sanic localhost

参考链接:Using nginx as HTTP load balancer

1)如果只是想用一个端口转发请求然后调用多个站点(也可以是同一个服务,例如sanic包装的模型服务接口,启动多次) 只需在nginx/conf/nginx.conf中配置如下,其他配置项目不用写:

http {
    upstream myapp1 {
        server localhost:8661 weight=60; #其中weight=xxx可省略,weight越大被调用的概率越大
        server localhost:8662 weight=30; 
        server localhost:8663 weight=10;
    }

    server {
        listen 8666;

        location / {
            proxy_pass http://myapp1;
        }
    }

    upstream myapp2 {
        server localhost:8771 weight=10; #其中weight=xxx可省略,weight越大被调用的概率越大
        server localhost:8772 weight=10; 
        server localhost:8773 weight=10;
    }

    server {
        listen 8777; # 监听8777端口

        location / {
            proxy_pass http://myapp2; #将8777端口收到的请求转发到myapp2,再经过myapp2进行分发到8771~8773等端口
        }
    }
}

 多说一句,开多个sanic服务(不同端口号)+nginx代理这几个端口这种方式的效果,实际上跟sanic执行app.run(workers=3)效果是一样的,都是多开几个sanic进程而已。

2)linux nginx的安装方法:

去官网下载nginx,解压之后进入主目录然后执行:

./configure --prefix=/software/nginx
其中prefix就是nginx的安装目录,建议选择当前用户下的自定义目录,以避免因没有管理员权限导致后续使用nginx报错的问题,如果是管理员账号安装,可以直接执行./configure,这将安装到默认目录。
然后再执行

make,make install即可。详情可参考:Nginx 安装配置 | 菜鸟教程 (runoob.com)
如果是ubuntu系统且能联网直接apt install nginx即可安装。

3) 其他nginx的更多用法,可以bing国际版搜索"nginx directive" 或搜索“nginx 命令”

标签:weight,--,端口,server,nginx,sanic,localhost
From: https://www.cnblogs.com/aaronhoo/p/17195879.html

相关文章

  • ES6-ES11 class静态成员
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><title>静态成......
  • 并发编程BUG源头
    背景核心矛盾CPU/内存/IO设备的速度差异解决思路计算机体系结构——CPU增加了缓存,以均衡与内存的速度差异操作系统——操作系统增加了进程、线程,以分时复用CPU,进而......
  • 今日报告
    总结--今天是比较充实的一天代码时间(包括上课):4h代码量(行):20行博客数量(篇):2篇了解到的相关知识点:1、今天主要是写了一些线下的作业,然后练习了Python的相关内容2、还复习......
  • 字符串专题
    字符串前言假期的时候刷了点字符串的专题,感觉板子变得更加普适和完善了KMPkmp算法实际上就是找最长公共前后缀,之前一直都是用的acwing的板子,根据董晓算法的板子和自己......
  • 数组的学习(偷懒还没有学完)
    数组数组的出现,是为了我们更加方便的操作数据。数组是存储同一种数据类型多个元素的集合,也可以看做一个容器。数组既可以存储基本数据类型,也可以存储引用数据类型数组......
  • socks5代理服务搭建
    前言:搭建socks5代理服务选择服务器时尽量选择以下服务器版本:CentOS7.x、Debian7+、Ubuntu14.04+。尤其是不要使用CentOS8.x,说多了都是泪啊。这次的搭建包含两种方式:......
  • celery
    celery介绍和安装#Celery是什么-翻译过来是芹菜的意思,跟芹菜没有关系-框架:服务,python的框架,跟django无关-能用来做什么-1异步任务......
  • ES6-ES11 ES5构造函数继承
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><title>对象继......
  • [Primer] 第 13 章 类继承
    第13章类继承13.1一个简单的基类使用classChild:publicParent{...}进行公有派生,基类的公有成员将成为派生类的公有成员,基类的私有部分也将成为派生类的一部......
  • 差分
    差分差分是前缀和的逆运算。     利用差分数组D[]可以把O(n)的区间修改,变成O(1)的端点修改,从而提高了修改操作的效率。  但是,一次查询操作,即查询某......