怎么使用supervisor管理nginx+tomcat容器
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,怎么使用supervisor管理nginx+tomcat容器?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。需求:使用do
千家信息网最后更新 2025年12月02日怎么使用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安全错误
数据库的锁怎样保障安全
南开区网络安全和信息化委员会
能查找学位论文的数据库有
光猫可以改成服务器吗
网络安全制度建设实施方案
浙江大数据软件开发哪家可靠
互联网游戏科技
使命召唤16提示与服务器断开
gpu数据库优化
oracle数据库相关文件
戴尔服务器进安全模式
外部访问服务器
天津公司软件开发
我的世界电信服务器哪个好
qq飞车服务器爆满了怎么办
华为通信核心网络技术
电脑网络技术是上班的吗
2018网络安全宣传周标示
国家高新区网络安全科技馆
萧山三职计算机网络技术就业方向
千云软件开发
阴阳师苹果服务器转安卓
软件测试数据库面试题15题答案
语音聊天软件开发教学
窗体操作与数据库同步
pon网络技术的缺点
自然资源清查数据库结构
文化加互联网科技
华为安全服务器
网络安全法草案争议
大型分布式游戏服务器