docker制作nginx镜像(docker镜像: nginx部署uwsgi+django算法集群)

通过nginx请求uwsgi+django项目的方式部署,能显著提高算法的并发性。其中uwsgi+django项目镜像可部署在多台业务服务器上,对应的nginx镜像部署在一台反向代理服务器上,可实现负载均衡。

1、docker制作uwsgi+django镜像

https://blog.csdn.net/Mugo_Moon/article/details/115301545

2、docker制作nginx镜像

(1)新建personal_nginx文件夹(位置随意),其下nginx.conf配置文件内容如下

user root;
events {
    worker_connections 1024;
}
http {
    client_max_body_size 50M;
    server {
        listen 8000;
        server_name 172.19.200.12;
        access_log /usr/src/personaleval_nginx/logs/access.log;
        error_log /usr/src/personaleval_nginx/logs/error.log;
        location / {
            include  /usr/local/nginx/conf/uwsgi_params;
            uwsgi_pass  172.19.100.20:8000;
        }
    }
}

备注:
a.每增加一个业务服务器转发可增加一个server配置,此仅放一个(敲黑板:通过此方法+多个uwsgi+django算法服务器的架构可达到集群的目的)
b. server_name为http/https请求服务器,uwsgi_pass为对应的业务服务器IP:port(敲黑板:一般情况下uwsgi_pass与uwsgi.ini文件中的socket应相同;但当uwsgi使用docker进行容器化后,docker run命令将映射uwsgi的服务器IP(172.19.100.20)到容器内,此时uwsgi_pass与socket不同,uwsgi_pass为uwsgi服务器IP,而socket的IP为0.0.0.0)
c. client_max_body_size限制最大数据量。
d. 若存在静态文件可添加location项。
e. uwsgi_params在nginx安装程序文件夹中自带。

(2)docker生成镜像文件时执行的文本文件dockerfile(位于personeval_nginx根目录之下)

FROM centos:centos7

RUN yum -y install gcc make pcre-devel zlib-devel wget
RUN wget http://nginx.org/download/nginx-1.15.2.tar.gz

RUN mkdir /usr/local/nginx
RUN set -ex \
        && tar -zxvf  nginx-1.15.2.tar.gz\
        && cd nginx-1.15.2\
        && ./configure --prefix=/usr/local/nginx && make && make install\
        && ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/

RUN mkdir -p /usr/src/personaleval_nginx
WORKDIR /usr/src/personaleval_nginx
COPY . /usr/src/personaleval_nginx
CMD ["nginx", "-c", "/usr/src/personaleval_nginx/nginx.conf"]

(3)镜像

# 建立镜像
[root@200-12-gpuserver personeval_nginx]# docker build -t personeval_nginx:v0.3 .
# 查看镜像
[root@200-12-gpuserver personeval_nginx]# docker images
# 运行镜像
[root@200-12-gpuserver personeval_nginx]# docker run -d -it -p 8000:8000 personaleval_nginx:v0.3
# 若dockerfile中没有CMD命令,可通过以下方式启动
## 查看container ID
##[root@200-12-gpuserver personeval_nginx]# docker ps
##[root@200-12-gpuserver personeval_nginx]# docker exec -i -t  container的ID号 /bin/bash
## 通过uwsgi命令启动django项目
##[root@200-12-gpuserver personeval_nginx]# nginx -c /usr/src/personeval_nginx/nginx.conf

3、镜像移植

#保存镜像
[root@200-12-gpuserver personeval_nginx]# docker save container的ID -o ./personaleval_nginx-save-0331.zip
#加载镜像
[root@65-035-GPU ~]# docker load < personaleval_nginx-save-0331.zip

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值