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
}
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)