`

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 '...

    centos6.7安装fastdfs docker部署

    CentOS 6.7 安装 FastDFS Docker 部署 在本文中,我们将详细介绍 CentOS 6.7 下安装 FastDFS 文件服务器和 Docker 容器集群的过程。 1. 安装 JDK 1.8 在安装 FastDFS 之前,我们需要首先安装 JDK 1.8。在 CentOS ...

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

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

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

    这篇文章将指导您如何在虚拟机中安装 CentOS 7,并配置静态 IP、安装 JDK 1.8、Tomcat、Mysql、Maven、Nginx、Node.js、Docker、Redis、RabbitMQ 等环境。 安装 CentOS 7 在 VMware Fusion 中新建虚拟机,将 ...

    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等安装

    虚拟机与docker用法

    在本节中,我们将详细介绍虚拟机和Docker的用法,包括安装Redis、JDK、Spring Boot项目、Tomcat、MySQL、Docker、Nginx等的配置和使用方法。 一、安装Redis Redis是一种基于内存的NoSQL数据库,支持多种数据结构如...

    Linux运维从入门到高级全套案例v3

    - **Nginx Tomcat动静分离**:利用Nginx作为反向代理,实现静态内容和Java应用的分离。 - **LNAMP高性能架构配置**:优化Linux、Nginx、Apache、MySQL的组合,提升系统性能。 - **构建DNS域名解析服务器**:设置...

    linux相关软件安装配置

    ### Linux相关软件安装配置知识点详解 #### Linux JDK 安装与...通过这些步骤,用户可以在自己的 Linux 环境中搭建起完整的 Java Web 应用服务器和缓存服务器,并且可以通过 NGINX 来实现负载均衡和反向代理等功能。

    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容器快速部署和访问,有详细的准确的命令;

    linux下java项目部署

    9. **负载均衡与集群**:在生产环境中,可能需要多个Tomcat实例进行负载均衡,可以通过Nginx或Apache HTTP Server作为反向代理实现。还可以配置Apache mod_jk或HAProxy实现负载均衡。 10. **自动化部署**:为了提高...

    Linux平台WEB服务器搭建.

    整合两者可以实现负载均衡和动静分离。通过mod_jk或mod_proxy模块,Apache可以将JSP请求转发给Tomcat处理,返回结果给用户。 3.5 vsftpd安装: vsftpd是流行的FTP服务器,用于上传和下载文件,配置文件为vsftpd....

    Linux搭建服务器需要的文件.7z

    本资料包包含了在CentOS系统上搭建常用服务所需的软件,包括Tomcat 8、JDK 1.8、Nginx 1.14.2、Redis 5.0.5以及Zookeeper 3.4.14。下面将详细解释这些组件的功能、安装步骤及其在服务器环境中的作用。 1. **JDK 1.8...

    cent4j:基于 Centos 的 Java Dockerfile

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

Global site tag (gtag.js) - Google Analytics