centos7 docker nginx tomcat 动静分离 负载均衡配置

阅读更多
mini安装centos7 64位
yum -y update
yum -y install lrszs nettools


关闭selinux
vi /etc/selinux/config,把里边的一行改为
SELINUX=disabled

改了之后保存,然后重启就可以了。
getenforce

安装docker
yum install docker docker-devel
systemctl start docker.service
systemctl enable docker.service


docker基本命令说明
docker ps 正在运行的容器
docker ps -a 所有容器
docker images 所有镜像
docker rm [容器id] 删除容器
docker rm -f [容器id] 强制删除容器
docker rmi [镜像id] 删除镜像
docker rmi -f [镜像id] 强制删除镜像
docker run -it -v[本地目录]:[docker目录] [镜像id] /bin/bash 启动容器
docker run -itd -p [本地端口]:[docker端口] -v[本地目录]:[docker目录] [镜像id] /bin/bash 启动端口启动容器
docker exec -i -t [容器id]/bin/bash  console容器
docker stop [容器id] 停止容器
docker commit [容器id] 镜像名称:版本号, 根据容器创建镜像生产版本号


获取centos镜像
docker pull centos


查看镜像
docker images
REPOSITORY    TAG      IMAGE ID      CREATED         SIZE
centos7       001      196e0ce0c9fb  12 days ago     196.6 MB


修改镜像名
docker tag [镜像id] [镜像名]:[版本号]


启动容器,配置nginx,生成nginx镜像
vi /etc/selinux/config
SELINUX=disabled

mkdir -p /root/software /mnt/software /application/nginx/html/pic /application/nginx/html/css /application/nginx/conf/ext.d /application/nginx/logs
docker run -itd -p 80:80 -v /root/software:/mnt/software [镜像id] /bin/bash
docker exec -i -t [容器id] /bin/bash
yum -y update
yum -y install lrszs nettools
yum -y install pcre pcre-devel openssl openssl-devel gcc-c++
useradd -s /sbin/nologin -M nginx
tar zxvf nginx-1.13.5.tar.gz
./configure --user=nginx --group=nginx --prefix=/application/nginx-1.13.5 --with-http_stub_status_module --with-http_ssl_module
make && make install
ln -s /application/nginx-1.13.5/ /application/nginx
cd /application/nginx/conf
egrep -v "#|^$" nginx.conf.default > nginx.conf
mkdir -p /application/nginx/conf/ext.d


修改nginx.conf
vi /application/nginx/conf/nginx.conf
worker_processes        4;
error_log       logs/error.log;
pid     logs/nginx.pid;

events {
        use epoll;
        worker_connections  1024;
}
http {
        include         mime.types;
        default_type    application/octet-stream;
        server_names_hash_bucket_size   128;
        client_header_buffer_size       32k;
        large_client_header_buffers     4       64k;
        client_max_body_size    8m;
        sendfile        on;
        autoindex       on;
        keepalive_timeout       65;
        include         /application/nginx/conf/ext.d/*.conf;
}


退出docker,生成镜像
exit
docker stop [容器id]
docker commit [容器id] nginx:1.0
docker images
REPOSITORY   TAG     IMAGE ID     CREATED             SIZE
nginx        1.0     c2dc10ae5d59 24 hours ago        353.6 MB
centos7      001     196e0ce0c9fb 12 days ago         196.6 MB


创建目录
mkdir -p /root/software /mnt/software /application/nginx/html/pic /application/nginx/html/css /application/nginx/conf/ext.d /application/nginx/logs
/application/tc01 /application/tc02


配置nginx其他配置文件
cd /application/nginx/conf/ext.d/
vi cluster_tomcat.conf
upstream cluster_tomcat {
        server 172.16.33.250:9090 max_fails=3 weight=1 fail_timeout=60s;
        server 172.16.33.250:9091 max_fails=3 weight=1 fail_timeout=60s;
}

vi gzip.conf
gzip on; #开启gzip压缩输出
gzip_min_length 1k;    #最小压缩文件大小
gzip_buffers 4 16k;    #压缩缓冲区
gzip_http_version 1.0;    #压缩版本(默认1.1,前端如果是squid2.5请使用1.0)
gzip_comp_level 2;    #压缩等级
gzip_types text/plain application/x-javascript text/css application/xml;    
gzip_vary on;

vi test_server.conf
server {
        listen  80;
        server_name     172.16.33.250;
        location / {
                root    html;
                index   index.html index.htm;
        }
        location ~ .*\.(jsp|jspx|do)?$ {
                proxy_pass http://cluster_tomcat;
                proxy_set_header HOST $host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
        location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ {
                root    html/pic;
                expires 3d;
        }
        location ~* \.(css|js)$ {
                root    html/css;
                expires 1d;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
                root    html;
        }
}

vi fastcgi.conf
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
fastcgi_buffer_size 64k;
fastcgi_buffers 4 64k;
fastcgi_busy_buffers_size 128k;
fastcgi_temp_file_write_size 128k;


挂载目录启动nginx镜像
docker run --name nginx_web -itd -p 80:80 -v /application/nginx/conf/ext.d/:/application/nginx/conf/ext.d/ -v /application/nginx/html/:/application/nginx/html/ -v /application/nginx/logs/:/application/nginx/logs/ nginx:1.0 /bin/bash
docker exec -i -t [容器id] /bin/bash


检查docker里面nginx配置文件正常与否
/application/nginx/sbin/nginx  -t
nginx: the configuration file /application/nginx-1.13.5/conf/nginx.conf syntax is ok
nginx: configuration file /application/nginx-1.13.5/conf/nginx.conf test is successful


检查docker里面启动nginx
/application/nginx/sbin/nginx


检查html是否正常访问
cd /application/nginx/html/
vi index.html

        
                index
        
        
        ####### nginx index test
        


docker外访问
curl http://172.16.33.250

再次挂载centos7镜像,配置tomcat,生成tomcat镜像
docker run -it -v /root/software:/mnt/software [镜像id] /bin/bash
cd /mnt/software
tar -zxvf apache-tomcat-7.0.81.tar.gz
mv apache-tomcat-7.0.81 /application/tomcat
tar -zxvf jdk-8u144-linux-x64.tar.gz
mv /root/software/jdk1.8.0_144/ /application/jdk

vi /etc/profile

JAVA_HOME=/application/jdk
JRE_HOME=$JAVA_HOME/jre
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
CLASSPATH=:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib/dt.jar
export JAVA_HOME JRE_HOME PATH CLASSPATH

source /etc/profile
java -version
java version "1.8.0_144"
Java(TM) SE Runtime Environment (build 1.8.0_144-b01)
Java HotSpot(TM) 64-Bit Server VM (build 25.144-b01, mixed mode)

vi /root/run.sh
#!/bin/bash
source /etc/profile
sh /application/tomcat/bin/catalina.sh run
chmod u+x /root/run.sh

退出docker
exit


生成tomcat镜像
docker commit [容器id] tomcat:1.0


vi /application/tc01/index.jsp
tomcat01

vi /application/tc02/index.jsp
tomcat02


挂载目录启动tomcat镜像容器
docker run --name tomcat_01 -itd -p 9090:8080 -v /application/tc01/:/application/tomcat/webapps/ROOT/ tomcat:1.0 /root/run.sh
docker run --name tomcat_02 -itd -p 9091:8080 -v /application/tc02/:/application/tomcat/webapps/ROOT/ tomcat:1.0 /root/run.sh

测试tomcat
curl http://172.16.33.250:9090/index.jsp
tomcat01
curl http://172.16.33.250:9091/index.jsp
tomcat02


测试nginx静态
curl http://172.16.33.250/index.html


        
                index
        
        
        ####### nginx index test
        



测试nginx动态
for((i=1;i<=10;i++));do curl http://172.16.33.250/index.jsp;done
tomcat01
tomcat02
tomcat01
tomcat02
tomcat01
tomcat02
tomcat01
tomcat02
tomcat01
tomcat02


docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                    NAMES
06c418118a67        3977c664af2d        "/bin/bash"         26 hours ago        Up 26 hours         0.0.0.0:80->80/tcp       kickass_jepsen
bed9b0fd8dd5        tomcat:1.0          "/root/run.sh"      28 hours ago        Up 28 hours         0.0.0.0:9091->8080/tcp   tender_perlman
321877b25511        tomcat:1.0          "/root/run.sh"      28 hours ago        Up 28 hours         0.0.0.0:9090->8080/tcp   stupefied_engelbart


docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
nginx               1.0                 c2dc10ae5d59        25 hours ago        353.6 MB
tomcat              1.0                 ae63e6316a77        46 hours ago        662.4 MB
centos7             001                 196e0ce0c9fb        12 days ago         196.6 MB


如果要修改nginx的配置文件,直接在宿主机上的/application/nginx/conf/ext.d/目录下修改*.conf ;使用下面命令加载配置文件:
docker exec [容器id] /application/nginx/sbin/nginx -t
docker exec [容器id] /application/nginx/sbin/nginx -s reload







你可能感兴趣的:(centos)