Docker部署nginx

一 nginx实现负载均衡整个流程

1、先将配置文件写入到自己的主机中

注意:文件放置位置应该是/home/nginx中,而不是放置在/etc/nginx中,当然这三个文件是自己手动创建的。

Docker部署nginx_第1张图片

 conf.d中文件中的default.conf文件:

#服务器的集群(一个集群中含有三台服务器)
upstream tomcatList {  #服务器集群名字
    server 172.18.0.5(此处是容器的地址):8081 weight=1;  #服务器1   weight是权重的意思,权重越大,分配的概率越大
    server
172.18.0.3:8081 weight=2;  #服务器2   weight是权重的意思,权重越大,分配的概率越大
    server 172.18.0.4:8081 weight=2;  #服务器2   weight是权重的意思,权重越大,分配的概率越大

    
server {

    listen  80;
    server_name  www.zking.com;

    location / { (主机进入的页面)
        root   /etc/nginx/html/;
        index  index.html index.htm;
    }

    error_page   500 502 503 504  /50x.html;
    
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
    
    location ~^/api/ {
        rewrite ^/api/(.*)$ /$1 break;
        proxy_pass  http://tomcatList;
        proxy_redirect default;
    }

}
 

2、拉取nginx镜像

   1、拉取镜像

   docker pull nginx

       2、依赖最新镜像创建一个本地镜像

docker run -it --name nginx(定义名字) -p 8080:80 nginx:latest(这是nginx最新版本)

       3、依赖最新镜像创建一个本地镜像

docker build -t nginx nginx:latest .

3、进行目录挂载


docker run -itd \ 

--name nginx02 \

-v /home/nginx/conf.d:/etc/nginx/conf.d \ (以下是将/home/nginx的内容挂载到对应的目录下,注意位置千万不能搞错)

-v /home/nginx/html:/etc/nginx/html \

-v /home/nginx/log:/usr/log/nginx \

-p 8081:80 \

nginx

第一个V:挂载nginx的主配置文件,以方便在宿主机上直接修改容器的配置文件

第二个V:挂载容器内nginx的日志,容器运行起来之后,可以直接在宿主机的这个目录中查看nginx日志

第三个V:挂载静态页面目录

4、创建三个容器,分别依赖于nginx镜像创建


docker run -itd(后台运行) --name spring02(容器名字) -p 8082(映射地址):8081(本机地址) spring:2.0(镜像版本号)

docker run -itd --name spring03 -p 8083:8081 spring:2.0

docker run -itd --name spring04 -p 8084:8081 spring:2.0 

 5、进行测试,开启三个端口进行测试,实现nginx轮循

Docker部署nginx_第2张图片

 可以看出每台服务器都有次数的访问,说明nginx进行了轮循,而访问服务次数取决于default.conf文件中的权重

#服务器的集群
upstream tomcatList {  #服务器集群名字
    server 172.17.0.5:8081 weight=1;  #服务器1   weight是权重的意思,权重越大,分配的概率越大
    server 172.17.0.6:8081 weight=2;  #服务器2   weight是权重的意思,权重越大,分配的概率越大
    server 172.17.0.4:8081 weight=2;  #服务器2   weight是权重的意思,权重越大,分配的概率越大

    
server {

    listen  80;
    server_name  www.zking.com;

    location / {
        root   /etc/nginx/html/;
        index  index.html index.htm;
    }

    error_page   500 502 503 504  /50x.html;
    
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
    
    location ~^/api/ {
        rewrite ^/api/(.*)$ /$1 break;
        proxy_pass  http://tomcatList;
        proxy_redirect default;
    }

}


Docker部署nginx_第3张图片

 这是集群的方式进行访问和测试,还可以有单个方式进行访问和测试,只要将defalut.conf文件进行更改即可 

你可能感兴趣的:(#,Docker,nginx,docker,运维,linux,服务器)