Docker Compose 一键部署Nginx代理Tomcat集群

目录结构

[root@localhost ~]# tree compose_nginx_tomcat/
compose_nginx_tomcat/
├── docker-compose.yml
├── mysql
│   ├── conf
│   │   └── my.cnf
│   └── data
├── nginx
│   ├── Dockerfile
│   ├── nginx-1.12.1.tar.gz
│   └── nginx.conf
├── tomcat
│   ├── apache-tomcat-8.0.46.tar.gz
│   ├── Dockerfile
│   ├── jdk-8u181-linux-x64.tar.gz
│   └── server.xml
└── webapps
    └── ROOT
        └── index.jsp

7 directories, 10 files

一、创建Nginx Compose

1、创建DockerCompose项目目录

mkdir compose_nginx_tomcat
cd compose_nginx_tomcat/

1.2、创建nginx管理目录

mkdir nginx
cd nginx

1.3、将nginx源码包下载到本地

  • Nginx-1.12.1
  • 下载地址:https://pan.baidu.com/s/1IAdODW63jbpwbQX992coYg
  • 密码:p89j

1.4、创建Dockerfile文件

vim Dockerfile

# 指定镜像
FROM centos:6
# 指定管理员
MAINTAINER xiangsikai
# 执行命令安装编译库文件
RUN yum install -y gcc gcc-c++ make openssl-devel pcre-devel
# 添加解压nginx包到/tmp目录下
ADD nginx-1.12.1.tar.gz /tmp
# 进入目录进行编译安装
RUN cd /tmp/nginx-1.12.1 && ./configure --prefix=/usr/local/nginx && make -j 2 && make install
# 删除容器内置配置文件
RUN rm -f /usr/local/nginx/conf/nginx.conf 
# 复制本地配置文件到容器内
COPY nginx.conf /usr/local/nginx/conf
# 声明暴露端口
EXPOSE 80
# 启动容器Nginx服务,指定全局命令daemon off保证服务在前台运行不会关闭
CMD ["/usr/local/nginx/sbin/nginx", "-g", "daemon off;"]

1.5、创建nginx.conf配置文件

vim nginx.conf

user  root; 
worker_processes  auto; 

error_log  logs/error.log  info;

pid        logs/nginx.pid; 


events {
    use epoll; 
}

http {

    include       mime.types;
    default_type  application/octet-stream;

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

    access_log logs/access.log main;
    sendfile        on;
    keepalive_timeout  65;
    
# 代理三台tomcat服务
    upstream www.example.com {
        #ip_hash;
        server tomcat01:8080;
    server tomcat02:8080;
    server tomcat03:8080;
    }

# 动静分离
    server {
        listen 80;
        server_name localhost;

# 动态请求转发给tomcat处理
    location / {
        proxy_pass http://www.example.com;
    }
# 静态资源请求交给nginx处理
        location ~ \.(html|css|js|jpg|png|gif)$ {
            root /opt/webapps/ROOT;
        }
    }
}
nginx配置文件

相关文章:

  • 2021-09-28
  • 2021-07-18
  • 2020-12-24
  • 2021-10-09
  • 2021-07-11
  • 2022-12-23
  • 2022-12-23
  • 2022-02-28
猜你喜欢
  • 2021-07-17
  • 2021-05-18
  • 2020-05-03
  • 2021-10-17
  • 2021-12-07
  • 2021-07-05
  • 2021-11-01
相关资源
相似解决方案