基于Docker部署 Tomcat集群、 Nginx负载均衡

代码 代码 1396 人阅读 | 0 人回复

<
写正在前里




  • 看完Dokcer相干的册本,恰好有个项目要如许弄,以是本人操练一下。
看成一百世一样。那里的原理很大白:我思故我正在,既然我存正在,便不克不及假装没有存正在。不管怎样,我要为本人背起义务。——王小波《三十而坐》

构造图:

115053memlpbyqoauz7rty.jpg

那里仅做为一种进修,普通这类背载的话,Nginx是放到主机侧的, JavaWeb(Tomcat)使用放到容器里。
  结果
115053uthabhzbt1t21x4h.jpg

新建文件夹。
  1. D=uag;mkdir $D;cd $D;mkdir uag_nginx uag_tomcat8;
  2. ls
  3. uag_nginx  uag_tomcat8
复造代码
一,Ngixn 镜像建造

  1. cd uag_nginx/
  2. # 用于寄存设置文件
  3. mkdir nginx
  4. vim Dockerfile
复造代码
Dockerfile 文件内乱容

  1. FROM nginx
  2. LABEL maintainer="uag"
  3. ENV REFRESHED_AT 2021-08-27
  4. EXPOSE 8099
复造代码
构建nginx设置文件内乱容

那个的设置文件,正在容器运转的时分经由过程 -v参数取 容器内乱部同享。便利前期参数变动
  1. cd ./nginx
  2. vim nginx.conf
复造代码
nginx.conf 设置文件内乱容

  1. user  nginx;
  2. worker_processes  auto;
  3. error_log  /var/log/nginx/error.log notice;
  4. pid        /var/run/nginx.pid;
  5. daemon off;
  6. events {
  7.     worker_connections  1024;
  8. }
  9. http {
  10.     include       /etc/nginx/mime.types;
  11.     default_type  application/octet-stream;
  12.     log_format  main  &#39;$upstream_addr - $remote_addr - $remote_user [$time_local] "$request" &#39;
  13.                       &#39;$status $body_bytes_sent "$http_referer" &#39;
  14.                       &#39;"$http_user_agent" "$http_x_forwarded_for"&#39;;
  15.     access_log  /var/log/nginx/access.log  main;
  16.     sendfile        on;
  17.     #tcp_nopush     on;
  18.     keepalive_timeout  65;
  19.     #gzip  on;
  20.     include /etc/nginx/conf.d/*.conf;
  21.     server {
  22.         listen          8099;
  23.         server_name     localhost;
  24.         root            /var/www/html/;
  25.         index           index.html index.htm;
  26.         access_log      /var/log/nginx/default_access.log main;
  27.         error_log       /var/log/nginx/default_error.log;
  28.         
  29.         location / {
  30.                 proxy_pass http://backend;
  31.         }
  32.         location ~ .* {
  33.                         proxy_pass http://backend;
  34.                         proxy_set_header Host $http_host;
  35.                         proxy_set_header X-Real-IP $remote_addr;
  36.                         proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  37.                 }
  38.         
  39. }
  40.     # 那里设置背载
  41.     upstream backend {
  42.     server 172.23.231.190:8069;
  43.     server 172.23.231.190:8079;
  44.     server 172.23.231.190:8089;
  45. }
  46. }
复造代码
设置背载:172.23.231.190为宿主机IP,8069,8079,8089为对应的Java Web 表露的使用端心。

  1. # 那里设置背载
  2.     upstream backend {
  3.     server 172.23.231.190:8069;
  4.     server 172.23.231.190:8079;
  5.     server 172.23.231.190:8089;
  6. }
复造代码
构建Nginx镜像

  1. docker build -t uag/uag_nginx .
复造代码
两,java Web(Tomcat)使用镜像构建

  1. cd uag_tomcat8/
  2. vim Dockerfile
复造代码
Dockerfile 文件内乱容

  1. FROM dordoka/tomcat
  2. MAINTAINER LIRUILONG
  3. COPY UAWeb.war   /opt/tomcat/webapps/UAWeb.war
  4. EXPOSE 8080
  5. ENTRYPOINT [ "/opt/tomcat/bin/catalina.sh", "run" ]
复造代码
上传对应的War包

  1. ls
  2. Dockerfile  UAWeb.war
复造代码
构建镜像

  1. docker build -t uag/uag_tomcat .
复造代码
三,运转容器

Nginx镜像

  1. docker run -d -p 8099:8099 --name uag_nginx  -v $PWD/nginx/nginx.conf:/etc/nginx/nginx.conf   uag/uag_nginx nginx
复造代码
java Web(Tomcat)镜像

  1. docker run -it -d -p 8089:8080 --name uag_app_1  uag/uag_tomcat
  2. docker run -it -d -p 8079:8080 --name uag_app_2  uag/uag_tomcat
  3. docker run -it -d -p 8069:8080 --name uag_app_3  uag/uag_tomcat
复造代码
  查察运转的容器
115053yz8171g9ez8b9b10.png

  阅读器会见
115053vk0710bdo77mmqdd.jpg

  查察背载方法:新历程的方法
115054dxaw4xjz8gfjcpcx.jpg

  查察背载方法:–volumes-from 方法
Dockerfile文件
  1. FROM nginx
  2. LABEL maintainer="uag"
  3. ENV REFRESHED_AT 2021-08-27
  4. VOLUME  /var/log/nginx/
  5. EXPOSE 80
复造代码
  1. ┌──(liruilong㉿Liruilong)-[/mnt/e/docker/uag/uag_nginx]
  2. └─$ docker run  -it --rm --volumes-from nginx_log  centos cat /var/log/nginx/default_access.log
  3. 172.23.231.190:8069 - 172.17.0.1 - - [30/Aug/2021:12:55:02 +0000] "GET /UAWeb/services/listServices HTTP/1.1" 200 12660 "http://127.0.0.1:8099/UAWeb/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36" "-"
  4. 172.23.231.190:8079 - 172.17.0.1 - - [30/Aug/2021:12:55:02 +0000] "GET /UAWeb/axis2-web/css/axis-style.css HTTP/1.1" 200 1587 "http://127.0.0.1:8099/UAWeb/services/listServices" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36" "-"
  5. 172.23.231.190:8069 - 172.17.0.1 - - [30/Aug/2021:12:55:02 +0000] "GET /UAWeb/axis2-web/images/asf-logo.gif HTTP/1.1" 200 5866 "http://127.0.0.1:8099/UAWeb/services/listServices" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36" "-"
  6. 172.23.231.190:8079 - 172.17.0.1 - - [30/Aug/2021:12:55:02 +0000] "GET /UAWeb/axis2-web/images/axis_l.jpg HTTP/1.1" 200 12340 "http://127.0.0.1:8099/UAWeb/services/listServices" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36" "-"
  7. 172.23.231.190:8089 - 172.17.0.1 - - [30/Aug/2021:12:55:03 +0000] "GET /UAWeb/services/listServices HTTP/1.1" 200 12660 "http://127.0.0.1:8099/UAWeb/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36" "-"
  8. 172.23.231.190:8069 - 172.17.0.1 - - [30/Aug/2021:12:55:03 +0000] "GET /UAWeb/axis2-web/images/asf-logo.gif HTTP/1.1" 200 5866 "http://127.0.0.1:8099/UAWeb/services/listServices" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92
复造代码
构建好镜像上传仓库:

115054zponofoxnoptztf3.jpg

嗯,需求注册一个Docker Hub账号,然后登录,需求镜像前里减 账户名/
  1. ┌──(liruilong㉿Liruilong)-[/mnt/e/docker/uag/uag_nginx]
  2. └─$ docker push liruilong/nginx_log
  3. The push refers to repository [docker.io/liruilong/nginx_log]
  4. An image does not exist locally with the tag: liruilong/nginx_log
  5. ┌──(liruilong㉿Liruilong)-[/mnt/e/docker/uag/uag_nginx]
  6. └─$ docker tag 9c9af0362eb9  liruilong/nginx_log
  7. ┌──(liruilong㉿Liruilong)-[/mnt/e/docker/uag/uag_nginx]
  8. └─$ docker push liruilong/nginx_log
  9. The push refers to repository [docker.io/liruilong/nginx_log]
  10. fb04ab8effa8: Pushed
  11. 8f736d52032f: Pushed
  12. 009f1d338b57: Pushed
  13. 678bbd796838: Pushed
  14. d1279c519351: Pushed
  15. f68ef921efae: Pushed
  16. latest: digest: sha256:2af7e8aeab84e8a816caf6b0342e1a45f95c7089ff52578040ea3a4c28a943c7 size: 1570
  17. ┌──(liruilong㉿Liruilong)-[/mnt/e/docker/uag/uag_nginx]
  18. └─$  docker push liruilong/nginx_log:tagname  # 推来镜像
复造代码
115055tmfh8tyoyiqf2ziy.jpg


免责声明:假如进犯了您的权益,请联络站少,我们会实时删除侵权内乱容,感谢协作!
1、本网站属于个人的非赢利性网站,转载的文章遵循原作者的版权声明,如果原文没有版权声明,按照目前互联网开放的原则,我们将在不通知作者的情况下,转载文章;如果原文明确注明“禁止转载”,我们一定不会转载。如果我们转载的文章不符合作者的版权声明或者作者不想让我们转载您的文章的话,请发帖留言提供原创证明,我们将积极配合您!
2、本网站转载文章仅为传播更多信息之目的,凡在本网站出现的信息,均仅供参考。本网站将尽力确保所提供信息的准确性及可靠性,但不保证信息的正确性和完整性,且不对因信息的不正确或遗漏导致的任何损失或损害承担责任。
3、任何透过本网站网页而链接及得到的资讯、产品及服务,本网站概不负责,亦不负任何法律责任。
4、本网站所刊发、转载的文章,其版权均归原作者所有,如其他媒体、网站或个人从本网下载使用,请在转载有关文章时务必尊重该文章的著作权,保留本网注明的“稿件来源”,并自负版权等法律责任。
回复

使用道具 举报

 
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则