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

时间:2024-03-14 16:49:57

目录

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项目操作手册

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

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项目操作手册

 

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项目操作手册

 

 

查看运行容器IP地址

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

具体执行命令如下

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

 

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

 

 

 

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项目操作手册

查看java项目日志 

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

 

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

 

 

5、问题截图 

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

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

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

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

 

备注

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

 

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

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