由于虚拟机无法运行在单个机器上,所以采用docker这个微虚拟机进行模拟,一个docker容器代表一台服务器。

系统架构

我们需要有一个可运行的java jar包,这里的jar包运行在miaoshaserver上
在这里插入图片描述

Mysql服务器

创建mysql容器

docker run -p 3306:3306 --name mysql5.7 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7

创建miaoshaserver服务器

拉取一个运行Java环境的镜像

docker pull java

运行一个miaoshaserver1容器在java环境中

docker run -it --net host --name miaoshaserver1 -d java

将miaosha.jar包复制到docker容器中

docker cp miaosha.jar miaoshaserver1:/var/tmp/ 

克隆一个miaoshaserver

docker commit -m="miaoshaserver" -a="wangyu" 14f20624f803 miaoshaserver

查看镜像创建结果

docker images

创建miaoshaserver2容器

docker run -it --net host --name miaoshaserver2 -d miaoshaserver

进入docker容器

docker exec -it miaoshaserver1 /bin/bash

分别进入miaoshaserver的两个容器进行启动和配置

启动miaosha.jar包

java -jar /var/tmp/miaosha.jar

注意修改配置文件的端口

注意我们连接的mysql 的ip应该是172.17.0.1.这是因为mysql容器没有使用–net host 标签,使用的应该是docker容器默认ip而非主机网络。

Nginx服务器 openresty的安装

docker pull openresty

建立存储配置文件的目录

mkdir ~/work
cd work
mkdir conf
mkdir logs

添加nginx.conf配置

vim conf/nginx.conf

nginx.conf内容(注意在主机开放80端口)

worker_processes  1;
error_log logs/error.log;
events {
        worker_connections 1024;
}
http {
        include    /usr/local/openresty/nginx/conf/mime.types;

        upstream backend_server {
        		#这里的IP就是反向代理的IP,代理的服务器IP和端口做如下的配置
                server 10.0.0.133:8080 weight=1; 
                server 10.0.0.133:8090 weight=1;
        }


        server{
                listen 80;
                server_name localhost;

                location /resources/  {
                        alias /usr/local/openresty/nginx/html/resources/;
                        index index.html index.html;
                }
                location / {
                        proxy_pass http://backend_server ;
                        proxy_set_header Host $host;
                        proxy_set_header        X-Real-IP       $remote_addr;
                        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
                }
        }
}

创建openrestry容器

docker run -d --name nginx-openresty -p 80:80 -v $PWD/conf/nginx.conf:/usr/local/openresty/nginx/conf/nginx.conf:ro -v $PWD/logs:/usr/local/openresty/nginx/logs openresty/openresty

将前端资源复制到目录下

docker cp miaosha-front.tar nginx- openrestry:/usr/local/openrestry/nginx/html

进入openrestry容器

docker exec -it nginx-openresty /bin/bash
cd /usr/local/openrestry/nginx/html

解压文件

tar -xvf miaosha-front.tar 

访问80端口,搭建完成

Logo

开源、云原生的融合云平台

更多推荐