基于docker环境构建nginx代理java项目操作手册

目录

1、搭建环境说明

2、基础镜像准备

Java项目准备

nginx部署准备

3、容器启动

Nginx容器启动

查看运行容器IP地址

4、反向代理配置

5、问题截图

备注


1、搭建环境说明

Windows环境 win10+docker

基础信息说明

本文全程使用CMD控制台进行命令操作,可能的朋友使用Linux命令比较习惯。在此也推荐一个CMD环境使用shell命令的方式

使用git进行CMD控制台对shell的支持,git安装一路下一步,然后配置如下path路径支持即可

Git安装路径\Git\usr\bin;

Git安装路径\Git\mingw64\bin;

另外如果朋友们不知道是配置不对还是docker的原因导致的 最终没有成功的,建议脱离容器,使用一个nginx和tomcat进行配置一次然后先验证下配置是否已经生效

如果是配置文件有问题 在nginx的文件夹下 执行nginx.exe 可以看到异常问题

基于docker环境构建nginx代理java项目操作手册插图

基于docker环境构建nginx代理java项目操作手册插图1

本文用得到的常规命令 汇总

docker 日志
docker logs -f ID

docker端口
docker port ID

docker网络路由
查看route print
查看机器信息IP
ocker inspect 1990d5bcebaf

docker inspect –format='{{.NetworkSettings.IPAddress}}' ID

因为docker容器内部支持命令有限 查看文件内容要用cat

cat /etc/nginx/nginx.conf

2、基础镜像准备

Java项目准备

https://blog.csdn.net/xupeng874395012/article/details/105779398

nginx部署准备

docker run nginx 执行此命令会自动拉取最新的nginx镜像

基于docker环境构建nginx代理java项目操作手册插图2

3、容器启动

Nginx容器启动

先启动ngixn容器 然后看看下容器内的配置文件资源位置

/usr/share/nginx/html

/etc/nginx/nginx.conf

/etc/nginx/conf.d

/var/log/nginx

然后对应在本地磁盘下依次创建对应结构文件,然后再重新启动nginx的时候加载指定本地磁盘的文件路径

docker run –name mynginx -d -p 80:80

-v d:\docker\nginx\html:/usr/share/nginx/html

-v d:\docker\nginx\conf\nginx.conf:/etc/nginx/nginx.conf

-v d:\docker\nginx\conf.d:/etc/nginx/conf.d

-v d:\docker\nginx\logs:/var/log/nginx nginx

参考上面的命令 因为是我是在windows环境弄的,Windows路径需要\斜线来指定路径,我的文件均在D盘docker\nginx文件夹下处理 然后执行上面的命令启动nginx加载本地自定义文件。然后使用 docker exec -it id /bin/bash 命令进入docker 容器,查看下当前docker容器内数据是否已经被指定文件覆盖。 然后启动两个java程序,然后查看docker运行时容器有哪些 检查启动是否成功

基于docker环境构建nginx代理java项目操作手册插图3

查看运行容器IP地址

用docker inspect ID命令查看当前容器的ID地址

具体执行命令如下

docker inspect –format='{{.NetworkSettings.IPAddress}}' ID

基于docker环境构建nginx代理java项目操作手册插图4

4、反向代理配置

修改nginx.conf配置文件 增加如下配置

Upstream 下面是java项目的部署地址和端口

upstream example{

server 172.17.0.2:8080 weight=1;

server 172.17.0.3:8080 weight=1;

}

server {

listen 80;

server_name www.example.com localhost;

location / {

proxy_pass http://example;

}

}

重新覆盖nginx配置 然后启动容器访问nginx服务 即可直接转发到java项目中,最终结果如下图

基于docker环境构建nginx代理java项目操作手册插图5

查看java项目日志

docker logs -f ID 查询实时日志 发现在页面刷新请求的时候 ,已经分别把请求转发到了两个docker容器上了。

基于docker环境构建nginx代理java项目操作手册插图6

5、问题截图

上面我的java项目是没有bin/bash的可以使用 /bin/sh进入

基于docker环境构建nginx代理java项目操作手册插图7

如下图所示 ,这个nginx挂载文件的时候 指定的替换文件不对应导致的,指定替换nginx的文件位置指定成了文件夹了

基于docker环境构建nginx代理java项目操作手册插图8

备注

本实践操作仅仅适合练手,不适合实际操作,反向代理和负载均衡阶段生产环境需要支持信息因业务不同也不同,在此文不做相关说明

关注下方二维码,每周杂谈:java老兵陪你聊编程

基于docker环境构建nginx代理java项目操作手册插图9

原文链接:https://blog.csdn.net/xupeng874395012/article/details/105891964

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享