docker部署nginx+tomcat架构

使用docker部署nginx+tomcat架构

架构说明:

使用nginx+tomcat实现动态/静态(资源请求)分离和负载均衡。

配置docker镜像仓库:/etc/docker/daemon.json

{
    "registry-mirrors": ["https://registry.docker-cn.com", "http://hub-mirror.c.163.com", "https://pee6w651.mirror.aliyuncs.com"]
}

下载nginx和tomcat的镜像:

docker pull nginx
docker pull tomcat

创建nginx和tomcat本地目录,稍后将挂载到docker容器上:

mkdir -p ~/nginx/www ~/nginx/conf/ ~/nginx/logs
mkdir -p ~/tomcat/webapps/ROOT ~/tomcat/conf ~/tomcat/logs

在tomcat/webapps/ROOT中创建index.html:




    
    docker deployment


    

hello, world

启动tomcat:

docker run -d --name tomcat1 -v ~/tomcat/webapps:/usr/local/tomcat/webapps tomcat
docker run -d --name tomcat2 -v ~/tomcat/webapps:/usr/local/tomcat/webapps tomcat

获取tomcat容器IP,获取到的IP将配置到nginx的配置文件中:

docker inspect tomcat1|grep "IPAddress"
docker inspect tomcat2|grep "IPAddress"

在nginx/conf增加配置文件nginx.conf:

user  nginx;
worker_processes  1;

error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;


events {
   worker_connections  1024;
}


http {
   include       /etc/nginx/mime.types;
   default_type  application/octet-stream;

   log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                     '$status $body_bytes_sent "$http_referer" '
                     '"$http_user_agent" "$http_x_forwarded_for" "$upstream_addr"';

   access_log  /var/log/nginx/access.log  main;

   sendfile        on;
   #tcp_nopush     on;

   keepalive_timeout  65;

   #gzip  on;

   upstream tomcat {
       server 172.17.0.2:8080;
       server 172.17.0.4:8080;
   }

   server {
       listen 80;
       server_name localhost;

       location / {
           proxy_pass http://tomcat;
           proxy_redirect off;
           index index.html index.htm;
           proxy_set_header Host $host;
           proxy_set_header X-Real-IP $remote_addr;
           proxy_set_header X-Real-Port $remote_port;
           proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
       }

       location /static/ {
           alias /usr/share/nginx/html/;
       }
   }

   include /etc/nginx/conf.d/*.conf;
}

启动nginx:

docker run -d -p 80:80 --name nginx -v ~/nginx/www:/usr/share/nginx/html -v ~/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v ~/nginx/logs:/var/log/nginx nginx

使用docker ps查看docker进程:
在这里插入图片描述

访问http://server_ip/index.html:
docker部署nginx+tomcat架构_第1张图片
OK,部署成功。

你可能感兴趣的:(docker部署nginx+tomcat架构)