`

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
<html>
        <head>
                <title>index</title>
        </head>
        <body>
        ####### nginx index test
        </body>
</html>

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

<html>
        <head>
                <title>index</title>
        </head>
        <body>
        ####### nginx index test
        </body>
</html>


测试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







分享到:
评论

相关推荐

    使用docker部署nginx前后端解决跨域问题.docx

    使用docker部署nginx前后端解决跨域问题

    基于CentOS6.8镜像+OpenSSL1.1.1g通过Nginx1.14离线创建HTTPS服务

    在DockerOS6.8的镜像里,离线安装Nginx及配置...7、创建证书并修改Nginx配置后从新载入配置文件; 8、验证https服务和http自动跳转。 镜像下载地址: https://hub.docker.com/repository/docker/estc/centos4https

    docker_lnmtp:centos 下docker 一键部署php和tomcat环境

    centos 下docker 一键部署php和tomcat环境 ###安装docker ###安装docker-compose ###运行容器 docker-compose -f docker-compose.yml up -d ###删除镜像 docker rmi --force $(docker images | grep kingkoo | awk '...

    docker中基本镜像的安装和使用

    docker中包含centos,docker容器配置,java相关配置,mysql,nginx,python,tomcat,zookeeper的安装和基本使用

    Docker构建Apache、Nginx、Tomcat、redis镜像

    docker run --name nginx -d -p 81:80 nginx:1.1 测试Nginx服务页面 做APACHE镜像 mkdir httpd cd httpd/ vim Dockerfile FROM centos RUN yum -y install httpd EXPOSE 80 CMD [httpd,-DFOREGROUND] docker ...

    Keepalived+Nginx+Tomcat 实现高可用Web集群的示例代码

    Keepalived+Nginx+Tomcat 实现高可用Web集群 一、Nginx的安装过程 1.下载Nginx安装包,安装依赖环境包 (1)安装 C++编译环境 yum -y install gcc #C++ (2)安装pcre yum -y install pcre-devel (3)安装zlib yum -y...

    centos软件安装方式积累

    centos所需软件安装步骤,如jdk、mysql、docker、Nginx、Tomcat等安装

    虚拟机安装CentOS7及环境搭建.pdf

    内容包含安装部署CentOS7、设置静态ip、linux安装jdk1.8、Tomcat、mysql、Maven、Nginx、nodejs、docker 、redis、rabbitMQ等环境配置

    DockerHub快速搭建安全环境

    dockerhub 快速搭建基础环境、安全环境。Dvwa WebGoat Snort ELK openvas mysql redis Oracle Weblogic tomcat nginx websphere jboss Struts2实例 juice-shop centos

    Docker简单快速入门手册

    里面的内容是个人整理,可以实际进行上级实验,环境为Centos7,其中包含了从安装到入门命令以及Dockerfile集成,并有mysql,nginx,tomcat的docker容器快速部署和访问,有详细的准确的命令;

    使用supervisor管理nginx+tomcat容器的方法示例

    使用docker来启动nginx + tomcat 双进程,实际应用中,多进程还是比较常见的。 1: 创建dockerfile目录 mkdir -p /docker/web 2: 编写dockerfile: /docker/web/Dockerfile FROM centos7 MAINTAINER lin test@163....

    cent4j:基于 Centos 的 Java Dockerfile

    Centos 7 JDK 8 Maven Tomcat8 nginx 先决条件 我假设您已经安装了 Docker 并且它正在运行。 有关安装说明,请参阅。 建造 构建 Docker 镜像的步骤: ####1。 克隆这个 repo $git clone ...

    Docker虚拟化简介及两种平台的构建流程

    文章目录一、Docker虚拟化的简介二...2)虚拟化技术的底层是要进行虚拟的硬件设备物理机资源,通过虚拟化技术软件可以将物理机虚拟生成N台虚拟机,应用程序、软件服务(Nginx、MYSQL、Zabbix、Redis、Tomcat、Ansible)

    CIS benchmarks.rar

    CIS_Apache_Tomcat_9_Benchmark_v1.0.0.pdf CIS_Apple_iOS_12_Benchmark_v1.0.0.pdf CIS_Apple_iOS_13_and_iPadOS_13_Benchmark_v1.0.0.pdf CIS_CentOS_Linux_6_Benchmark_v2.1.0.pdf CIS_CentOS_Linux_8_Benchmark_...

Global site tag (gtag.js) - Google Analytics