怎么使用supervisor管理nginx+tomcat容器
发表于:2025-02-05 作者:千家信息网编辑
千家信息网最后更新 2025年02月05日,怎么使用supervisor管理nginx+tomcat容器?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。需求:使用do
千家信息网最后更新 2025年02月05日怎么使用supervisor管理nginx+tomcat容器
怎么使用supervisor管理nginx+tomcat容器?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
需求:
使用docker来启动nginx + tomcat 双进程,实际应用中,多进程还是比较常见的。
1: 创建dockerfile目录
mkdir -p /docker/web
2: 编写dockerfile: /docker/web/Dockerfile
FROM centos7MAINTAINER lin test@163.comCOPY CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repoCOPY nginx_install.sh /tmp/nginx_install.shRUN sh /tmp/nginx_install.sh; \rm -rf /usr/local/src/*RUN sed -i -e '/worker_processes/a daemon off;' /usr/local/nginx/conf/nginx.conf; COPY jdk-8u162-linux-x64.tar.gz /usr/local/src/jdk-8u162-linux-x64.tar.gzCOPY tomcat_install.sh /tmp/tomcat_install.shRUN sh /tmp/tomcat_install.sh; \rm -rf /usr/local/src/* COPY supervisor_install.sh /tmp/supervisor_install.shCOPY supervisord.conf /etc/supervisord.confCOPY start_tomcat.sh /usr/local/tomcat/bin/mystart.shRUN sh /tmp/supervisor_install.sh; \rm -rf /tmp/*.sh
3: dockerfile集成的配置文件及安装文件
3.1 默认源下载较慢,更换yum源,以下CentOS-Base.repo配置文件拷贝到容器里更换
COPY CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo[root@docker web]# cat CentOS-Base.repo [base]name=CentOS-$releasever - Basebaseurl=http://mirrors.163.com/centos/$releasever/os/$basearch/gpgcheck=1gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 #released updates[updates]name=CentOS-$releasever - Updatesbaseurl=http://mirrors.163.com/centos/$releasever/updates/$basearch/gpgcheck=1gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 #additional packages that may be useful[extras]name=CentOS-$releasever - Extrasbaseurl=http://mirrors.163.com/centos/$releasever/extras/$basearch/gpgcheck=1gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 #additional packages that extend functionality of existing packages[centosplus]name=CentOS-$releasever - Plusbaseurl=http://mirrors.163.com/centos/$releasever/centosplus/$basearch/gpgcheck=1enabled=0gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
3.2nginx安装脚本
[root@docker web]# cat nginx_install.sh yum install -y wget tar gcc gcc-c++ make pcre pcre-devel zlib zlib-devel openssl openssl-devel cd /usr/local/srcwget 'http://nginx.org/download/nginx-1.12.2.tar.gz'tar -zxvf nginx-1.12.2.tar.gzcd nginx-1.12.2./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-stream --with-stream_ssl_modulemakemake installexit 0
3.3tomcat安装脚本
[root@docker web]# cat tomcat_install.sh yum install -y wget tarcd /usr/local/src/tar -zxvf jdk-8u162-linux-x64.tar.gzmv jdk1.8.0_162 /usr/local/#/usr/local/jdk1.8.0_162/bin/java -version #配置java环境变量echo 'JAVA_HOME=/usr/local/jdk1.8.0_162/' >>/etc/profileecho 'PATH=$PATH:$JAVA_HOME/bin' >>/etc/profileecho 'CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$CLASSPATH' >>/etc/profilesource /etc/profile wget https://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-8/v8.5.38/bin/apache-tomcat-8.5.38.tar.gztar -zxvf apache-tomcat-8.5.38.tar.gzmv apache-tomcat-8.5.38 /usr/local/tomcat
3.4dockerfile文件中涉及到的配置文件、脚本、安装包如下
[root@docker web]# lltotal 185384-rw-r--r-- 1 root root 835 Mar 9 01:12 CentOS-Base.repo-rw-r--r-- 1 root root 669 Mar 9 01:11 Dockerfile-rw-r--r-- 1 root root 189815615 Mar 9 01:15 jdk-8u162-linux-x64.tar.gz-rw-r--r-- 1 root root 340 Mar 9 01:13 nginx_install.sh-rw-r--r-- 1 root root 581 Mar 9 01:17 tomcat_install.sh
4: 一键安装supervisor: /docker/web/supervisor_install.sh
yum -y install epel-releaseyum -y install python2-pippip install supervisor
5: supervisor配置文件: /docker/web/supervisord.conf
[unix_http_server]file=/tmp/supervisor.sock ; the path to the socket file [supervisord]logfile=/tmp/supervisord.log ; 日志logfile_maxbytes=50MB ; 最大50M日志logfile_backups=10 ; 轮循日志备份10个loglevel=info ; 日志等级记录info的pidfile=/tmp/supervisord.pid ;pidnodaemon=true ;在前台启动minfds=102400 ; 文件描述符限制minprocs=2000 ; 进程数 [rpcinterface:supervisor]supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface [supervisorctl]serverurl=unix:///tmp/supervisor.sock ; use a unix:// URL for a unix socket [program:nginx]command=/usr/local/nginx/sbin/nginx ; 前台启动nginxautostart=true ; 随着supervisor自动启动startsecs=10 ; 启动10s后算正常启动autorestart=true ; 程序退出后自动重启startretries=3 ; 启动失败自动重试次数stdout_logfile_maxbytes=20MB ;stdout 日志文件大小最大20Mbstdout_logfile=/usr/local/nginx/logs/out.log [program:tomcat]command=sh /usr/local/tomcat/bin/mystart.sh ; 前台启动tomcatautostart=true ; 随着supervisor自动启动startsecs=10 ; 启动10s后算正常启动autorestart=true ; 程序退出后自动重启startretries=3 ; 启动失败自动重试次数stdout_logfile_maxbytes=20MB ;stdout 日志文件大小最大20Mbstdout_logfile=/usr/local/tomcat/logs/catalina.out
6: tomcat的启动脚本/docker/web/start_tomcat.sh
#由于supervisor无法使用source,需要编写个脚本来启动source /etc/profile/usr/local/tomcat/bin/catalina.sh run
7: 构建镜像
cd /docker/webdocker build -t shijiange_web .[root@docker web]# docker imagesREPOSITORY TAG IMAGE ID CREATED SIZEshijiange_web latest bc06a9974252 7 seconds ago 1.33 GB
8: 启动容器测试
[root@docker web]# docker run -d shijiange_web /bin/bash -c 'supervisord -c /etc/supervisord.conf'76782ab71c3b1d2f818ad76214d6336ae11a524eeb9d211f154fe4ad5226015d[root@docker web]# [root@docker web]# docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES76782ab71c3b shijiange_web "container-entrypo..." 12 seconds ago Up 12 seconds happy_jones
9.测试验证:
[root@docker web]# docker exec -it 76782ab /bin/bashbash-4.2# ifconfig
10.容器验证:curl nginx
11.容器验证:curl tomcat
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。
文件
日志
容器
脚本
配置
最大
前台
进程
验证
大小
次数
程序
需求
帮助
测试
管理
清楚
内容
变量
备份
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
河北软件开发者能赚多少钱
娄底网络技术员
苏州web前端软件开发哪家可靠
网络技术在课程运用的缺点
苏州个人软件开发费用是多少
车联网技术网络安全
胜思网络安全知识
韶关东服务器是否有住宿
主板网络安全公司
公共数据网络安全
河南工业软件开发零售价
简述数据库的不安全因素
软件开发损失谁负责
成都企业进销存软件开发
比升科技互联网公司创业
方舟服务器辅助的管理菜单
网页一直显示未连上服务器
网络软件开发程序员
数据库添加存储过程的方法
添亿通讯网络技术有限公司
vba中怎么调试数据库
潍坊手机软件开发学校
软件开发管理面试技巧
软件开发企业分布
胜思网络安全知识
网络安全宣传工作情况汇报
软件开发需要的标准
安仁安卓软件开发工资
谷歌服务器的价格
幼儿园网络安全活动方案