• 基于Docker构建上百台Nginx、Tomcat


    1、启动Nginx

    docker pull docker.io/nginx

    docker run -itd --privileged -p 80:80 nginx

    登录网址http://localhost:80,成功返回页面

    2、批量启动10Tomcat

    for i in `seq -w 1 10`;do docker run -itd --privileged --name="Tomcat$i" tomcat;done

    3、修改Nginx配置

      ①获取所有tomcat 容器的IP

      docker inspect $(docker ps | awk '/Tomcat/ {print $1}') | grep -i ipadd | grep -oE '([0-9]{1,3}.){3}[0-9]'|uniq|sort

      

      ②获取Nginx 负载均衡配置模板

      docker inspect $(docker ps | awk '/Tomcat/ {print $1}') | grep -i ipadd | grep -oE '([0-9]{1,3}.){3}[0-9]'|uniq|sort|awk '{print "server "$0":8080 weight=100 max_fails=2 fail_timeout=15;"}'

      

       ③更新/etc/nginx/conf.d/default.conf

      

    cat>/etc/nginx/conf.d/default.conf<<EOF
    upstream tomcat {
    #weight为服务器权重,权值越高被分配到的几率越大,max_fails最大超时次数,fail_timeout服务器代理被挂起的时间 server 10.10.10.1:8080 weight=100 max_fails=2 fail_timeout=15; server 10.10.10.2:8080 weight=100 max_fails=2 fail_timeout=15; server 10.10.10.4:8080 weight=100 max_fails=2 fail_timeout=15; server 10.10.10.5:8080 weight=100 max_fails=2 fail_timeout=15; server 10.10.10.6:8080 weight=100 max_fails=2 fail_timeout=15; server 10.10.10.7:8080 weight=100 max_fails=2 fail_timeout=15; server 10.10.10.8:8080 weight=100 max_fails=2 fail_timeout=15; server 10.10.10.9:8080 weight=100 max_fails=2 fail_timeout=15; } server { listen 80; server_name localhost; location / { root /usr/share/nginx/html; index index.html index.htm; proxy_pass http://tomcat; } #error_page 404 /404.html; # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } } EOF

     检查nginx语法nginx -t,然后重启容器的nginx进程nginx -s reload

       

    解决问题:

    1、Tomcat 启动后在网页访问时提示拒绝

      排查了防火墙、进程,发现Tomcat的进程根本没有起来,原因是启动Tomcat的命令用了:docker run -itd --privileged tomcat:latest bash

      多加了一个bash,让tomcat进程没有起来

    2、Tomcat启动后提示404

    使用docker安装了tomcat镜像,默认为latest最新的(8.5.50版本),依据tomcat镜像创建容器并同时做了端口映射

    命令为:docker run --name tomcat01 -d -p 8083:8080 tomcat 

    用的是阿里云的云服务器,防火墙也开了端口,在浏览器中访问,http://112.74.40.14:8083/  提示如下界面

     提示资源未找到,这就出现了tomcat容器正常运行但是无法访问到tomcat首页的问题,其实这并不是我们镜像或者容器的问题,只是这个版本的tomcat开发者不知道怎么想的,在webapps下是空的,所以访问不到首页,后来换成8.0.52版本就可以了。新版本中,原本应该在webapps中的文件,被放在了webapps.list中,只要把文件放回原位,也可以解决这个问题。

  • 相关阅读:
    logback
    GC
    常用JVM配置参数
    JVM
    linux
    简单的webService 实例
    [转载]Java 工程师成神之路
    ActiveMQ 在mac 上的安装与运行
    subline3 + emmet 加快前端开发效率
    Spring WebMVC 4.1.4返回json时导致的 406(Not Acceptable)
  • 原文地址:https://www.cnblogs.com/jpinsz/p/13522475.html
Copyright © 2020-2023  润新知