使用supervisor和ngix配置多线程的负载均衡
来源:互联网 发布:查分数的软件 编辑:程序博客网 时间:2024/03/28 22:25
使用supervisor开启多个线程
ubuntu下使用apt-get安装supervisor
# apt-get install supervisor
然后,给我们自己开发的应用程序编写一个配置文件,让supervisor来管理它。每个进程的配置文件都可以单独分拆,放在/etc/supervisor/conf.d/目录下,以.conf作为扩展名,例如,hdpt.conf定义了一个gunicorn的进程
[group:hdpt] # 组名programs=hdpt-web # 参数名[program:hdpt-web] # 参数名一致user=root # root用户directory=/data/www/vhosts/hdpt-backend # 项目路径command=python3 main.py 120%(process_num)02d # 要执行的命令 端口号为120**,02d表示占位2个,process_num=numprocs=10,表示从0(12000)开始,连续开启10个端口,到10(12010)。process_name = %(program_name)s%(process_num)d # 定义进程的名字 program_name加进程序列,例如:hdpt-web6autorestart=true # 设置 进程挂掉之后 自动重启redirect_stderr=true # 设置允许指定log日志输出位置stdout_logfile=/data/www/vhosts/hdpt-backend/log/tornado.log # 指定log日志输出位置stdout_logfile_maxbytes=500MB # 指定log日志大小stdout_logfile_backups=50 # stdout日志文件循环保存时的stdout_logfile备份数。如果设置为0,则不会保留备份。stderr_logfile=/data/www/vhosts/hdpt-backend/log/tornado.log loglevel=info # 记录级别,指示写入supervisord活动日志的内容。 关键,错误,警告,信息,调试,跟踪或愚蠢之一。 请注意,在日志级别调试时,supervisord日志文件将记录其子进程的stderr / stdout输出以及关于进程状态更改的扩展信息信息,这对于调试未正确启动的进程非常有用。numprocs = 10 # 进程个数numprocs_start = 1 # 从12001开始占用端口
重载配置文件
# supervisorctl reloadRestarted supervisord
启动用户组下的程序
# supervisorctl start hdpt:*
查看线程启动情况
root@panjikejiproduce:/etc/supervisor/conf.d# supervisorctl statushdpt:hdpt-web1 RUNNING pid 27267, uptime 0:21:12hdpt:hdpt-web10 RUNNING pid 27260, uptime 0:21:13hdpt:hdpt-web2 RUNNING pid 27265, uptime 0:21:12hdpt:hdpt-web3 RUNNING pid 27266, uptime 0:21:12hdpt:hdpt-web4 RUNNING pid 27263, uptime 0:21:13hdpt:hdpt-web5 RUNNING pid 27264, uptime 0:21:12hdpt:hdpt-web6 RUNNING pid 27261, uptime 0:21:13hdpt:hdpt-web7 RUNNING pid 27262, uptime 0:21:13hdpt:hdpt-web8 RUNNING pid 27268, uptime 0:21:12hdpt:hdpt-web9 RUNNING pid 27269, uptime 0:21:12
查看端口占用时候否正确
# netstat -pan | grep 27260tcp 0 0 0.0.0.0:12010 0.0.0.0:* LISTEN 27260/python3 tcp 0 0 127.0.0.1:49417 127.0.0.1:27017 ESTABLISHED 27260/python3 tcp 0 0 127.0.0.1:49418 127.0.0.1:27017 ESTABLISHED 27260/python3 tcp 0 0 127.0.0.1:49439 127.0.0.1:27017 ESTABLISHED 27260/python3 tcp6 0 0 :::12010 :::* LISTEN 27260/python3
27260是hdpt:hdpt-web10的pid,通过查看端口占用可见27260确实是占用的12010这个端口
配置ngix的负载均衡
修改/etc/nginx/sites-enabled/hdpt,在其中添加一个端口映射,upstream,并修改proxy_pass。
原文件
server { listen 80; server_name www.huodipingtai.com huodipingtai.com; client_max_body_size 50m; listen 443; ssl on; ssl_certificate /data/www/vhosts/hdpt-ssl/chained.pem; ssl_certificate_key /data/www/vhosts/hdpt-ssl/domain.key; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on; ssl_session_timeout 10m; ssl_session_cache shared:SSL:10m; ssl_stapling on; ssl_stapling_verify on; ssl_trusted_certificate /data/www/vhosts/hdpt-ssl/signed.crt; resolver 8.8.4.4 8.8.8.8 valid=300s; resolver_timeout 10s; location /.well-known/acme-challenge/ { alias /data/www/vhosts/hdpt-acme-challenge/; } location / { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://127.0.0.1:8889; } location /static/ { alias /data/www/vhosts/hdpt-backend/static/; } access_log /var/log/nginx/hdpt-backend.access_log; error_log /var/log/nginx/hdpt-backend.error_log;}
修改后的文件
# 添加了upstream,映射到12001到12010这10个端口。upstream tornadoes { ip_hash; server 127.0.0.1:12001; server 127.0.0.1:12002; server 127.0.0.1:12003; server 127.0.0.1:12004; server 127.0.0.1:12005; server 127.0.0.1:12006; server 127.0.0.1:12007; server 127.0.0.1:12008; server 127.0.0.1:12009; server 127.0.0.1:12010;}server { listen 80; server_name www.huodipingtai.com huodipingtai.com; client_max_body_size 50m; listen 443; ssl on; ssl_certificate /data/www/vhosts/hdpt-ssl/chained.pem; ssl_certificate_key /data/www/vhosts/hdpt-ssl/domain.key; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on; ssl_session_timeout 10m; ssl_session_cache shared:SSL:10m; ssl_stapling on; ssl_stapling_verify on; ssl_trusted_certificate /data/www/vhosts/hdpt-ssl/signed.crt; resolver 8.8.4.4 8.8.8.8 valid=300s; resolver_timeout 10s; location /.well-known/acme-challenge/ { alias /data/www/vhosts/hdpt-acme-challenge/; } location / { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://tornadoes; # 修改了这里 使用映射关系 } location /static/ { alias /data/www/vhosts/hdpt-backend/static/; } access_log /var/log/nginx/hdpt-backend.access_log; error_log /var/log/nginx/hdpt-backend.error_log;}
阅读全文
0 0
- 使用supervisor和ngix配置多线程的负载均衡
- Ngix+Tomcat配置集群负载均衡
- NLB配置步骤和使用负载均衡的注意事项
- Supervisor配置和使用
- tornado 使用supervisor管理进程,使用nginx做负载均衡
- ngix:subrequest 的 用途 和 使用流程
- nginx的安装和负载均衡配置
- 负载均衡的配置
- supervisor 3.0 配置和使用
- libevent带负载均衡的多线程使用示例
- libevent带负载均衡的多线程使用示例
- libevent带负载均衡的多线程使用示例
- libevent带负载均衡的多线程使用示例
- libevent带负载均衡的多线程使用示例
- supervisor的配置与使用
- 如何使用Nginx配置虚拟服务器和做负载均衡
- Nginx和Tomcat结合使用负载均衡配置
- nginx的安装和配置,域名跳转和负载均衡
- Java 进制转化
- 学习SQL注入引发的思考
- Oracle 11g完全卸载
- 滴滴2017笔试bfs
- Tomcat调试模式启动慢
- 使用supervisor和ngix配置多线程的负载均衡
- 树的术语、二叉树的性质、二叉树的基本操作总结
- [BZOJ1927][SDOI2010]星际竞速(费用流)
- [转]拉伸插值算法
- Mac安装MySQL
- Angular 4.0_在线竞拍网站(4)
- 输入子系统
- 基础MySQL笔记
- Confluence数据迁移及升级(5.9.0升级到6.1.0)