负载均衡的配置流程

1. 配置负载均衡策略, 在/etc/nginx/conf.d/新建一个nginx.conf配置文件, 加入以下内容

upstream backend{
#ip_hash;
#weight 服务器权重值,如果服务器性能一致,可以将权重值配置为一样
server 127.0.0.1:9701 weight=1;
server 127.0.0.1:9702 weight=2;
server 127.0.0.1:9703 weight=4;

}
server {
#用户访问的端口号, 注意的服务器里面是否以开此端口
    listen         8001;
    server_name    127.0.0.1;
    access_log      /var/log/nginx/nginx_demo_access.log;
    error_log       /var/log/nginx/nginx_demo_error.log;
charset     utf-8;

    client_max_body_size 75M;
    location / {
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_buffering off;
#Backend自己随便起的,但是要保证和upstream后面的名一致
proxy_pass http://backend;
   }

 }

2. 将项目上传到服务器, 配置uwsgi文件和项目对应nainx端口server, 因此使用端口做的负载均衡, 所以需要将项目复制三份放在不同的目录下, 在每一个项目下新建对应的uwsgi.ini文件, 加入项目启动的uwsgi相关配置
例如:
每个project里面就是放的同一个项目(复制成三份)

里面uwsgi.ini配置(其中一个, 直接将其复制到其他项目中, 注意文件的路径的配置)

[uwsgi]

# Django-related settings

# (/9802/9803)
socket = 127.0.0.1:9801

项目绝对路径

chdir           = /home/project/FuZai

Django的wsgi文件相对路径

wsgi-file       = FuZai/wsgi.py

# process-related settings

# master

master          = True

# 最大进程数

processes       = 4

# 线程数

threads         = 2

#设置此参数,有一个主进程

master=True

#守护进程的方式运行,log日志存在此log文件里

deamonize=/var/log/uwsgi/djangoProject.log

#主进程id写入文件里

pidfile= /var/log/nginx/uwsgi.pid

# ... with appropriate permissions - may be needed

# chmod-socket    = 664

#退出时,清理环境

vacuum          = True

reload-mercy    = 10

max-requests    = 5000

limit-as        = 512

buffer-size     = 30000


3. 在/etc/nginx/conf.d下新建project_nginx.conf(自定义)文件, 在文件中配置nginx服务监听server端口, 需要监听upstearm backend中监听的三个端口,分别配置三个server,监听不同端口,配置和uwsgi交互的内网端口,例如 9701<->9801  ,9702<->9802,9703<->9803....

例如:

server {
    listen         9701;
    server_name    127.0.0.1;
    access_log      /home/project/FuZai/FuZai_access.log;
    error_log       /home/project/FuZai/FuZai_error.log;
    charset     utf-8;

    client_max_body_size 75M;
    root /home/project/FuZai;
    location / {
        include uwsgi_params;
        uwsgi_pass 127.0.0.1:9801;
        uwsgi_read_timeout 2;
    }
  }

server {
    listen         9702;
    server_name    127.0.0.1;
    access_log      /home/project2/FuZai/FuZai_access.log;
    error_log       /home/project2/FuZai/FuZai_error.log;
    charset     utf-8;

    client_max_body_size 75M;
    root /home/project2/FuZai;
    location / {
        include uwsgi_params;
        uwsgi_pass 127.0.0.1:9802;
        uwsgi_read_timeout 2;
    }
  }

server {
    listen         9703;
    server_name    127.0.0.1;
    access_log      /home/project3/FuZai/FuZai_access.log;
    error_log       /home/project3/FuZai/FuZai_error.log;
    charset     utf-8;


    client_max_body_size 75M;
    root /home/project3/FuZai;
    location / {
        include uwsgi_params;
        uwsgi_pass 127.0.0.1:9803;
        uwsgi_read_timeout 2;
    }
  }


4. 开启多个服务器


每个项目开一个


扫描二维码关注公众号,回复: 2368045 查看本文章

测试网站点击打开链接





猜你喜欢

转载自blog.csdn.net/qq_41664526/article/details/80585717
今日推荐