设为首页 收藏本站
查看: 877|回复: 0

[经验分享] Docker 部署nginx+tomcat 负载冗余

[复制链接]

尚未签到

发表于 2018-12-4 10:34:28 | 显示全部楼层 |阅读模式
  实验架构

  docker前期配置,设置repo
  yum install -y yum-utils \
  device-mapper-persistent-data \
  lvm2
  yum-config-manager \
  --add-repo \
  https://download.docker.com/linux/centos/docker-ce.repo
  安装docker
  yum install -y docker-ce

  yum list docker-ce --showduplicates | sort -r

  自动启动
  systemctl start docker
  systemctl enable docker
  docker安装验证
  docker run hello-world

  下3个镜像,都用官网的好了
  docker search nginx
  docker pull nginx

  docker search tomcat
  docker pull tomcat

  docker search centos
  docker pull centos

  同步下时间,每隔12小时自动同步一次
  yum install -y ntpdate
  ntpdate 0.asia.pool.ntp.org
  crontab -e
  * * */12 * * ntpdate 0.asia.pool.ntp.org
  crontab -l

  看看本地镜像
  docker images

  更新下网络配置避免包转发出错
  echo "net.ipv4.ip_forward=1" >>/usr/lib/sysctl.d/00-system.conf
  systemctl restart network
  关闭selinux
  setenforce 0
  sed -i '/^SELINUX=/cSELINUX=disabled' /etc/sysconfig/selinux
  docker run -d -p 8080:80 --name nginxdemo nginx #以nginx镜像启动容器
  #参数说明 -d 以后台进程运行 -p 本地端口:容器端口 (端口映射) --name 容器名称
  docker ps #显示当前运行的容器


  宿主机器192.168.10.131 端口8080转发到docker中80中,看起来docker 和nginx镜像都没问题

  清除刚刚的demo
  docker stop nginxdemo
  docker rm nginxdemo
  docker ps

  正式做nginx,tag自己的版本然后启动下
  docker tag be1f31be9a87 nginx:v1
  docker images

  docker run -ti -d -p 80:80 nginx:v1 /bin/bash
  docker ps

  这nginx镜像里面没有vim,改不了配置,我先更新下,下一个vim,5k/s好速度,我先安装tomcat了
  docker exec -ti 14efbc894d74 /bin/bash
  /usr/sbin/nginx
  apt-get update
  apt-get install vim
  运行下tomcat
  docker run -ti -d -h tomcat1 -v /usr/www1:/usr/local/tomcat/webapps/www -p 8081:8080 tomcat
  docker run -ti -d -h tomcat2 -v /usr/www2:/usr/local/tomcat/webapps/www -p 8082:8080 tomcat
  8081 8082 都转发到了8080的tomcat上

  宿主机器创建2个目录和文件
  mkdir -pv /usr/www2 /usr/www1
  echo "Tomcat 1 html file on /usr/www1">/usr/www1/index.html
  echo "Tomcat 2 html file on /usr/www2">/usr/www2/index.html

  重新运行下tomcat容器
  docker run -ti -d -P -h tomcat99 -v /usr/www1:/usr/local/tomcat/webapps/ROOT tomcat /bin/bash
  docker run -ti -d -P -h tomcat88 -v /usr/www2:/usr/local/tomcat/webapps/ROOT tomcat /bin/bash
  docker exec -ti 5c10be46c807 /bin/bash
  bin/startup.sh
  docker exec -ti 54d5f9f370c2 /bin/bash
  bin/startup.sh
  32768 32769端口都映射到了宿主机器的目录,因为了-P,所以是随机端口



  继续nginx那个镜像,运行下更新下nginx
  docker tag be1f31be9a87 nginx:v0
  docker images
  docker run -ti -d -p 80:80 nginx:v0 /bin/bash
  docker exec -ti a62119e032b3 /bin/bash
  /usr/sbin/nginx
  apt-get update
  apt-get install vim
  更新下nginx配置
  vim /etc/nginx/nginx.conf
  upstream 127.0.0.1 {
  server 192.168.10.131:32768;
  server 192.168.10.131:32769;
  }

  vim /etc/nginx/conf.d/default.conf

  重新更新下nginx配置,然后重启nginx
  nginx -t
  nginx -s reload
  service nginx restart

  客户端验证
  多刷几次,nginx 的80端口负载冗余到后台的2台tomcat 上,然后tomcat 的-v虚拟目录映射了宿主机器的www目录中的2个地址


  日志http200

  从宿主机器curl下,2个后台都hit到了
  for i in `seq 1 10`; do curl 192.168.10.131;done





运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-643159-1-1.html 上篇帖子: tomcat下配置多个项目 下篇帖子: linux centos6设置tomcat开机自启动方法
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表