配合nginx,使用docker来临时替代故障服务器启动后台的一次尝试

由于点击量实在太大,不得不在ngip,cepip都启动了点击处理程序,然后nginx配置负载均衡转发到这两个程序。

然而点击处理消耗了大量的内存,最终导致ngip没有多余的内存了。

这样稳定跑了一天。

渠道那边问,给下游渠道的后台登不上去了。

才想起来因为内存不够,我关闭了渠道的后台。

此刻面临着要么把点击关掉,挪动到别的服务器,要么想办法启动备用的渠道后台。

实在是看到点击稳定的太好,舍不得这样放弃。

于是决定在docker集群上启动渠道后台。

1.  创建编排模板(之前没有尝试过在一个应用中暴露两个端口,这次决心试试)

ports:

- '8078'

- '8088'

privileged: true

restart: always

volumes:

- /root:/root_doc

labels:

aliyun.scale: '1'

aliyun.auto_scaling.min_instances: '1'

aliyun.routing.port_8088: http://media.xx.XX.com

aliyun.routing.port_8078: http://download.media.xx.XX.com

aliyun.auto_scaling.max_cpu: '80'

aliyun.auto_scaling.min_cpu: '10'

aliyun.auto_scaling.step: '1'

2. 创建好需要的Dockerfile,docker.sh,start.sh. 创建好应用和触发器。然后本地push上集群。

3. 看到在节点上的端口映射为 0.0.0.0:32769->8078/tcp, 0.0.0.0:32768->8088。

4. 打开nginx配置文件,开始配置转发:

upstream ups_cpa-n-down {

server 172.17.0.8:32769 max_fails=3 fail_timeout=4s weight=2;

}

upstream ups_cpa-n {

server 172.17.0.8:32768 max_fails=3 fail_timeout=4s weight=2;

}

#server {

#      listen 8088;

#      listen [::]:8088;

#

#      server_name media.XXX.com ;

#

#      location / {

#              proxy_pass http://ups_cpa-n;

#              proxy_store off;

#              proxy_redirect off;

#              proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

#              proxy_set_header X-Real-IP $remote_addr;

#              proxy_set_header Host $http_host;

#      }

#}

#

#server {

#      listen 8078;

#      listen [::]:8078;

#

#      server_name media.XXX.com ;

#

#      location / {

#              proxy_pass http://ups_cpa-n-down;

#              proxy_store off;

#              proxy_redirect off;

#              proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

#              proxy_set_header X-Real-IP $remote_addr;

#              proxy_set_header Host $http_host;

#      }

#}

5. 为何会写出上述配置呢?因为 nginx服务器挂载了 media.XXX.com 的域名,所以最好在nginx上监听渠道后台原来监听的 8078(下载),8088(处理json请求):

server {

listen 80;

listen [::]:80;

server_name media.XXX.com ;

location / {

root /home/arch/XX_N-v1;

index login.html index.html index.htm;

}

location /XX_N {

alias /home/arch/XX_N-v1;

index login.html index.html index.htm;

}

}

6. ngr一下,然后打开渠道后台,登录成功!但是下载时,提示找不到文件!

实在没有时间了,于是将ngip上的点击程序迁移到msgIP,终于有内存了!然后注释nginx添加的server段,启动渠道后台,一切恢复正常了。

思考:要想真正在生产环境中帮上忙,应该优化那些地方呢? 想想 pop.zoo local域名?

比如,port固定绑定,这样几点的固定的端口就会提供固定的服务。

ports:

- "10080:80"

- "10022:22"

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容