Docker应用部署tomcat和nginx

一、部署tomcat

1.拉取镜像

root@docker_dev mysql# docker pull tomcat

2.部署tomcat

root@docker_dev \~# rm -rf \~tomcat/

root@docker_dev \~# mkdir tomcat

root@docker_dev \~# cd tomcat/

root@docker_dev tomcat# docker run -id --name=c_tomcat \

> -p 8080:8080 \

> -v $PWD:/user/local/tomcat/webapps \

> tomcat

3.验证

#tomcat 的默认 Web 应用根目录(webapps)是存放 Web 应用的地方

在webapps下面创建一个test目录(应用名字),在test下面创建一个html文件

root@docker_dev tomcat# docker exec -it c_tomcat /bin/bash #进入容器

root@b4432a89096e:/usr/local/tomcat/webapps/test# pwd

/usr/local/tomcat/webapps/test

root@b4432a89096e:/usr/local/tomcat/webapps/test# cat index.html

<h1> hello tomcat docker </h1>

二、部署nginx

1.拉取镜像

root@docker_dev mysql# docker pull nginx

2.部署nginx

root@docker_dev \~# mkdir nginx

root@docker_dev \~# cd nginx/

root@docker_dev nginx# mkdir conf

root@docker_dev nginx# vim nginx.conf #附件有nginx.conf内容参考

root@docker_dev nginx# mv nginx.conf conf/

root@docker_dev nginx# docker run -id --name=c_nginx \

> -p 80:80 \

> -v $PWD/conf/nginx.conf:/etc/nginx/nginx.conf \

> -v $PWD/logs:/var/log/nginx \

> -v $PWD/html:/usr/share/nginx/html \

> nginx

3.验证

#nginx 的默认 Web 应用根目录(html)是存放 Web 应用的地方

在html下面创建一个html文件

同tomcat一样测试即可

附录

root@docker_dev conf# cat nginx.conf

运行用户(默认通常为 nobody,可根据实际情况修改)

user nginx;

Nginx 进程数,通常设置为 CPU 核心数

worker_processes auto;

错误日志路径及级别(debug/info/notice/warn/error/crit)

error_log /var/log/nginx/error.log warn;

进程 PID 文件

pid /var/run/nginx.pid;

工作模式及连接数上限

events {

每个 worker 进程的最大连接数

worker_connections 1024;

支持多路复用 I/O 模型(Linux 推荐 epoll,FreeBSD 推荐 kqueue)

use epoll;

}

HTTP 核心配置

http {

引入 MIME 类型定义(Nginx 内置)

include /etc/nginx/mime.types;

default_type application/octet-stream;

日志格式定义(main 为自定义名称,可在虚拟主机中引用)

log_format main 'remote_addr - remote_user $time_local "$request" '

'status body_bytes_sent "$http_referer" '

'"http_user_agent" "http_x_forwarded_for"';

访问日志路径(引用上面定义的 main 格式)

access_log /var/log/nginx/access.log main;

开启高效文件传输模式

sendfile on;

防止网络阻塞(配合 sendfile 使用)

tcp_nopush on;

减少网络报文数量

tcp_nodelay on;

连接超时时间(秒)

keepalive_timeout 65;

开启 gzip 压缩(减少传输数据量)

gzip on;

压缩级别(1-9,级别越高压缩率越高,CPU 消耗越大)

gzip_comp_level 2;

压缩的文件类型

gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;

引入虚拟主机配置(通常将每个站点配置放在 conf.d 目录下)

include /etc/nginx/conf.d/*.conf;

默认虚拟主机(当未匹配到其他主机时使用)

server {

监听端口(HTTP 默认为 80)

listen 80;

服务器名称(可填写域名,多个域名用空格分隔)

server_name localhost;

字符集设置

charset utf-8;

根目录(网站文件存放路径)

root /usr/share/nginx/html;

默认索引文件(优先级从左到右)

index index.html index.htm index.php;

访问根路径的处理

location / {

尝试查找请求的文件,不存在则返回 404

try_files uri uri/ =404;

}

处理 404 错误(可自定义错误页面)

error_page 404 /404.html;

location = /404.html {

root /usr/share/nginx/html;

}

处理 50x 系列错误(500/502/503/504)

error_page 500 502 503 504 /50x.html;

location = /50x.html {

root /usr/share/nginx/html;

}

}

}

相关推荐
WangMingHua1119 小时前
LM Studio Docker 部署——本地大模型一键启动
docker
曲幽1 天前
别再用网页翻译看源码了!你的私人翻译神器LibreTranslate,部署避坑指南来了
python·docker·web·pot·translate·libretranslate·arogstranslate
武子康3 天前
调查研究-183 Apple container:Mac 上用轻量 VM 跑 Linux 容器,Swift 会改写本地容器体验吗?
docker·容器·apple
ping某4 天前
为什么 Nginx 明明监听了 80,转发后端时却用了 4xxxx 端口?
后端·nginx
Alsn866 天前
等待学习-学习目录:Docker 容器安全攻防
学习·安全·docker
程序员老赵6 天前
服务器没有桌面?Docker 跑个 Chrome,浏览器就能远程用
docker·容器·devops
難釋懷6 天前
Nginx反向代理中的容错机制
运维·nginx
杨浦老苏6 天前
轻量级Docker仪表板Servedash
运维·docker·监控·群晖·仪表板
正经教主6 天前
【docker基础】 第八周:容器监控与应用更新策略
运维·docker·容器
bloglin999996 天前
Nginx高危漏洞CVE-2021-23017及配置样例
运维·nginx