18.需要使用docker在后台运行一个nginx服务器需要

18.需要使用docker在后台运行一个nginx服务器需要,第1张

需要使用docker在后台运行一个nginx服务器需要docker容器部署方式。方法如下:

1、docker构建mysql环境+docker构建项目自身环境。

2、Vue项目:使用docker启动nginx服务器方式代理部署。

3、项目使用mysql8.0作为数据源,部署时需要使用docker构建mysql环境及项目自身环境。

4、连接出现1251错误时:将项目进行打包:“mumu-0.0.1-SNAPSHOT.jar到此,springboot项目采用docker”方式运行部署结束。

5、使用docker容器方式运行nginx服务器即可。

可以把多个域名映射到同一个IP地址上

docker 镜像名称由REPOSITORY和TAG组成 [REPOSITORY[:TAG]] ,TAG默认为latest

宿主机创建持久化 conf--配置目录 html--静态网站目录 logs--日志目录 cert--存放证书目录

将容器内的 nginx.conf 与 default.conf 文件分别拷贝到主机/mnt/nginx与目录/mnt/nginx/conf下,分别执行

conf目录下创建nginx.conf文件

首先要在域名管理中做好域名简析

在conf.d目录下创建 域名为ab.baidu.com的配置文件 ab.baidu.com.conf 文件 包含ssl证书

在conf.d目录下创建 域名为gh.baidu.com的配置文件 gh.baidu.com.conf 文件 包含ssl证书

ginx.conf并没有在etc/nginx/conf目录下。

允许https访问 的 default.conf 文件

将服务器的配置文件挂载到容器中,这样我们修改配置文件会方便一些。

退出nginx容器,将容器中的文件nginx.conf先拷贝到宿主机中,conf.d目录下的 default.conf 文件拷贝出来

执行 docker stop ef 命令停止刚刚创建的nginx容器,ef是容器Id,然后执行 docker rm ef 移除容器,

-v /docker-root/nginx/conf/nginx.conf :/etc/nginx/nginx.conf

/docker-root/nginx/conf/nginx.conf 宿主机中的ngix配置文件 挂载 到容器的 /etc/nginx/nginx.conf 配置文件

-v /docker-root/nginx/conf/conf.d:/etc/nginx/conf.d

/docker-root/nginx/conf/conf.d 宿主机中的 配置目录 conf.d 挂载到 容器的 /etc/nginx/conf.d 目录上

-v /docker-root/nginx/cert:/cert/

映射ssl 证书文件

命令,重新创建nginx容器

这样就可以将配置文件、log、静态页面映射到宿主机中。需要修改或者查看直接在宿主机中修改或者查看就可以了。需要注意的是, 配置文件虽然映射到宿主机中,但是如需配置路径,还需配置成容器中的路径

注意发布到 云服务器上 服务器安全组是否开放了443端口。

把 vue 生成的 dist目录下的文件 上传到 服务器

/root/docker-root/vue-mcyl-src

文件目录 dist 目录 Dockerfile 文件

转到 此目录下

使用下面的命令 生成镜像

启动容器

docker run -d mcyl-vue:v1.0

conf.d 目录下的配置文件 default.conf

防火墙原因,需要将通信的端口开放

解决办法:

firewall-cmd --zone=public --add-port=9080/tcp --permanent

firewall-cmd --zone=public --add-port=8080-8080/tcp

参考 http://www.ttlsa.com/web/multiple-https-host-nginx-with-a-ip-configuration/

实现负载均衡其实并不难、只是很多人不敢去尝试而已,简单来说就是:

在nginx里面配置一个upstream,然后把相关的服务器ip都配置进去。然后采用轮询的方案,然后在nginx里面的配置项里,proxy-pass指向这个upstream,这样就能实现负载均衡.

nginx的负载均衡有4种模式:

1)、轮询(默认)

    每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。

2)、weight

    指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。

3)、ip_hash

    每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。

4)、fair , url_hash(第三方)

    按后端服务器的响应时间来分配请求,响应时间短的优先分配。

    docker pull nginx ( docker pull daocloud.io/nginx 这个稍微快点 )

    docker run -itd --name nginx1 -p 8080:80 nginx /bin/bash -- 主

    docker run -itd --name nginx2 nginx /bin/bash

    docker run -itd --name nginx3 nginx /bin/bash

    docker ps 查看

       docker network ls

docker nerwork inspect d530da7ebbd3

       进入nginx1 (主)

            docker exec -it d530da7ebbd3 /bin/bash   

            安装 vim 编辑器 (如有其他、尽可随意)   ---  注意:nginx2、nginx3 均安装 编辑器、下文不再赘述

                        1.  apt update   2.  apt install vim 

            cd /etc/nginx/

            vim nginx.conf

    进入nginx2

                docker exec -it e59de010efff /bin/bash

                    cd /usr/share/nginx/html/

                    vim index.html

                            Welcome to nginx! 后添加: From 172.17.0.3:80 即可

            进入nginx3

                docker exec -it 0f12240cb622 /bin/bash

                    cd /usr/share/nginx/html/

                    vim index.html

                            Welcome to nginx! 后添加: From 172.17.0.4:80 即可

重启三个nginx服务   service nginx restart

此时如果 docker容器会关闭、因此需要再次重启

        docker start d530da7ebbd3

        docker start e59de010efff

        docker start 0f12240cb622

测试结果

补充:

    上述说到 负载均衡有4种模式、

配置分别如下:

轮询模式:

    upstream webname {

        server192.168.0.1:8080

        server192.168.0.2:8080

  }

weight 模式:

    upstream webname {

        server192.168.0.1:8080 weight=2

        server192.168.0.2:8080 weight=1

  }

ip_hash模式:

 upstream webname {

    ip_hash

    server192.168.0.1:8080

    server192.168.0.2:8080

  }

其他配置:

设置某一个节点为backup,那么一般情况下所有请求都访问server1,当server1挂掉或者忙的的时候才会访问server2

upstream webname {

    server192.168.0.1:8080

    server192.168.0.2:8080 backup

  }

设置某个节点为down,那么这个server不参与负载。

upstream webname {

    server192.168.0.1:8080

    server192.168.0.2:8080 down

  }


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/475072.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-06-07
下一篇2023-06-07

发表评论

登录后才能评论

评论列表(0条)

    保存