[nginx]azure上使用docker配置爬虫集群及负载均衡
起因
最近阿里的费用消耗过高,所以打算从阿里迁移到有一定的优惠的azure china上,其实我本人是抗拒的
一,azure 的生态还不够完善,比如类似阿里的容器系统,一键部署的服务都得自己用k8s,或者swarm进行控制统一部署
二,部署时会有和种安全性的配置,还需要去里面自己管理平台进行设置
其它的就没什么特别的问题了,和正常的ubuntu使用没有太大的区别
准备
- docker
- docker-compose
- nginx镜像
安装docker ,使用python pip 安装docker-compose ,装备nginx 镜像
场景
- 有一台主机器 A
- 若干从机B,C,D,E,F
- 开放主机3001 的http端口,转发到从机的,3301这样可以实现负载均衡,统一一个入口点,当然,负载的策略可以根据自己的需要来,具体可以查查nginx weight 的关键字
使用
准备我们的nginx 的应用配置文件 appfirst.conf
upstream appfirst {
server 10.0.0.4:3301;
server 10.0.0.5:3301;
server 10.0.0.7:3301;
server 10.0.0.8:3301;
server 10.0.0.9:3301;
}
server {
listen 3301;
# The host name to respond to
server_name appfirst;
location / {
proxy_pass http://appfirst;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Real-Port $server_port;
proxy_set_header X-Real-Scheme $scheme;
}
}
在upsteam里面,填入的就是我们实际的B,C,D,E,F appfirst 应用内网地址,如果你有多个应用需要转发,可以类似的编写appsecond.conf …等等
在同目录下编写docker-compose.yml
文件,内容如下
proxy:
image: nginx
ports:
- "3301:3301"
#- "3302:3303"
#- "3303:3303"
volumes:
- "./appfirst.conf:/etc/nginx/conf.d/appfirst.conf"
#- "./appsecond.conf:/etc/nginx/conf.d/appsecond.conf"
#- "./appthird.conf:/etc/nginx/conf.d/appthird.conf"
Ok ,准备工作都做完了,将docker-compose.yml,appfirst.conf等放在同一个目录 ,使用如下命令
sudo docker-compose up -d
将接下来就可以看到使用docker-compose 的nginx的负载均衡就完成了
- 原文作者:大鱼
- 原文链接:https://brucedone.com/archives/1018/
- 版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议. 进行许可,非商业转载请注明出处(作者,原文链接),商业转载请联系作者获得授权。