Windows VMWare Centos Docker部署Nginx并配置对Springboot应用的访问代理

 前置博文

Windows VMWare Centos环境下安装Docker并配置MySqlhttps://blog.csdn.net/u013224722/article/details/148928081
Windows VMWare Centos Docker部署Springboot应用https://blog.csdn.net/u013224722/article/details/148958480

# 将已存在的容器设置为宿主机重启后自动运行
$sudo docker update --restart always dapi

一、Docker中安装使用Nginx

1、拉取Nginx镜像

sudo docker pull nginx:latest

2、创建目录用于存储拷贝出的nginx配置文件

        conf目录存放配置文件,conf.d为nginx给出的的默认配置文件,html为存放html资源的目录,logs存放nginx 的日志文件,ssl目录存放ssl证书用于配置https

sudo mkdir -p /home/duel/workspace/nginx/{conf,conf.d,html,logs,ssl}

3、启动Nginx

sudo docker run --name nginx -d -p 80:80 nginx:latest

4、Nginx启动后,拷贝出配置文件

sudo docker cp nginx:/etc/nginx/nginx.conf /home/duel/workspace/nginx/conf/ #复制配置文件
sudo docker cp nginx:/etc/nginx/conf.d /home/duel/workspace/nginx
sudo docker cp nginx:/usr/share/nginx/html /home/duel/workspace/nginx #复制基本的html界面

5、停止Nginx容器并删除

# 停止运行, 移除容器
sudo docker stop nginx# 删除所有停止状态的容器
sudo docker container prune

6、创建Html静态文件

      在拷贝出的存储nginx配置文件的目录中,添加一个用于测试的 html,路径和源码如下。

<!DOCTYPE html>
<html lang="en"><head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8"><meta charset="UTF-8"><title>dweb</title>
</head>
<body>
<h1>Hi!</h1>
<p>This is dweb index.html</p>
<p>The file is located on VMware Centos Os "/home/duel/workspace/dweb"</p>
</body>
</html>

7、新建Nginx配置文件

     在conf.d目录下,新增了两个文件,分别为对静态文件解析的  dweb.conf 以及对前置文章中所示创建的Springboot应用访问相关配置。

# 访问静态文件
server {listen       38080;server_name  localhost;location / {root   /usr/share/nginx/html/dweb;index  index.html index.htm;}location ~* \.(html|css|js|png|jpg|gif|ico|mp4|mkv|rmvb|flv|eot|svg|ttf|woff|woff2|pptx|rar|zip)$ {root /usr/share/nginx/html/dweb;autoindex on;}error_page   500 502 503 504  /50x.html;location = /50x.html {root   /usr/share/nginx/html;}
}

  Nginx 38081 端口的访问自动转发至 Springboot应用端口号。 

# 访问前文中记录的  Springboot应用
# 8093是发布的Springboot应用使用的端口server {listen       38081;server_name  localhost;location / {proxy_pass http://192.168.23.134:8093; // 端口转发}
}

8、基于新建的配置文件,重新创建Nginx容器

sudo docker run --name nginx -p 80:80 -p 443:443 -p 38080:38080 -p 38081:38081 -v /home/duel/workspace/nginx/html:/usr/share/nginx/html -v /home/duel/workspace/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /home/duel/workspace/nginx/conf.d:/etc/nginx/conf.d -v /home/duel/workspace/nginx/logs:/var/log/nginx -v /home/duel/workspace/nginx/ssl:/etc/nginx/ssl -d --restart=always nginx:latest

sudo docker run --name nginx -p 80:80 -p 443:443 -p 38080:38080 -p 38081:38081

-v /home/duel/workspace/nginx/html:/usr/share/nginx/html

-v /home/duel/workspace/nginx/conf/nginx.conf:/etc/nginx/nginx.conf

-v /home/duel/workspace/nginx/conf.d:/etc/nginx/conf.d

-v /home/duel/workspace/nginx/logs:/var/log/nginx

-v /home/duel/workspace/nginx/ssl:/etc/nginx/ssl

-d --restart=always nginx:latest

9、VMWare Centos中测试

打开Firefox浏览器、通过设置的38080端口,访问dweb目录下放置的index.html文件,成功!

通过设置的 38081 端口,访问Springboot应用提供的数据接口,成功!

10、回到Windows宿主机中测试

       回到Windows宿主机,通过Chrome浏览器,访问在 VMWare Centos Docker 中发布的静态文件以及 Springboot数据接口,均成功!

二、错误的尝试

1 、 静态文件目录未映射到容器内部

        浏览器访问报错 “404 Not Found”

        在使用 Docker 运行 Nginx 容器时,通常需要将宿主机上的文件和目录映射到容器内部,以便于管理配置文件、静态资源等。若将静态文件放在其他目录,如下所示,将静态文件放在了“/home/duel/workspace/dweb” 目录下,创建Nginx容器时 用的指令“-v  /home/duel/workspace/nginx/html:/usr/share/nginx/html” 只把 “/home/duel/workspace/nginx/html”目录映射进了容器内容。这时,Nginx启动后,浏览器访问报错 “404 Not Found”。

server {listen       38080;server_name  localhost;location / {root   /home/duel/workspace/dweb; // 这个目录在容器中不会映射index  index.html index.htm;}location ~* \.(html|css|js|png|jpg|gif|ico|mp4|mkv|rmvb|flv|eot|svg|ttf|woff|woff2|pptx|rar|zip)$ {root /home/duel/workspace/dweb;  // 这个目录在容器中不会映射autoindex on;}error_page   500 502 503 504  /50x.html;location = /50x.html {root   /usr/share/nginx/html;}
}

        解决方法:将dweb目录拷贝到  ./nginx/html 目录下,并修改 conf 中的root, ./nginx/html 目录下的文件会被映射。

server {listen       38080;server_name  localhost;location / {root   /usr/share/nginx/html/dweb; // 映射后的目录index  index.html index.htm;}

2、端口转发使用localhost或127.0.0.1

        浏览器访问报错 “502 Bad Gateway”

        在docker容器里,容器的IP和宿主机的IP是不一样的,127.0.0.1指向的是容器内部的ip。所以无法通过127.0.0.1去进行代理,必须把localhost或127.0.0.1 换成服务器的IP。

    使用:proxy_pass http://127.0.0.1:8093 报 502 Bad gateway

    使用:proxy_pass http://localhost:8093 报 502 Bad gateway

     需要使用主机的ip,如下:

server {listen       38081;server_name  localhost;location / {proxy_pass http://192.168.23.134:8093; // 使用Centos系统IP}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/87501.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/87501.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

暑期数据结构第一天

暑期数据结构第一天 数据元素与数据对象 数据元素--组成数据的基本单位 与数据的关系&#xff1a;是集合的个体 数据对象--性质相同的数据元素的集合 与数据的关系&#xff1a;集合的子集 逻辑结构 &#xff08;1&#xff09;线性结构&#xff0c;所有结点都最多有一个直…

vsCode 扩展中 package.nls.json 文件的作用国际化支持

package.nls.json 代表英文语言文件 {"command.favourite.addtofavourite": "Add to Favourite","command.favourite.deletefavourite": "Remove from Favourite","command.favourite.moveup": "Move Up" } 在 …

结构型智能科技的关键可行性——信息型智能向结构型智能的转换(提纲)

结构型智能科技的关键可行性 ——信息型智能向结构型智能的转换 1.信息型智能科技概述 1.1传统计算机科技的信息型继承者 1.2 信息型智能环境 1.3信息型智能主体 1.4机器学习创造的智能 1.5信息型智能科技的问题 2.结构型智能科技概述 2.1传统计算机科技向真实生命结构…

Excel 数据合并助手SheetDataMerge智能识别同类数据,销售报表处理提升效率

各位Excel小能手们&#xff01;今天给大家介绍个超厉害的玩意儿——SheetDataMerge&#xff0c;这可是专注Excel数据处理的实用工具&#xff01;它就像个数据小管家&#xff0c;核心功能就是智能合并工作表里的同类数据。 软件下载地址安装包 它有多牛呢&#xff1f;能自动识别…

AIStarter平台使用指南:如何一键卸载已下载的AI项目(最新版操作教程)

如果你正在使用 AIStarter 平台&#xff0c;但不知道如何卸载不再需要的 AI 项目&#xff0c;那么这篇简明教程将为你提供清晰的操作指引。 AIStarter 是由知名创作者“熊哥”打造的一款 AI 工具启动器平台&#xff0c;旨在帮助用户快速部署和运行各类 AI 项目。随着平台不断更…

项目中大表治理方案实践

一、业务背景 目前生产库数据库服务器数据存储达到了13T&#xff0c;其中license_spart表数据量达到了200亿&#xff0c;占用7.5T&#xff0c;空间占用率达到54%。而且这张表每年数据增长量达到30亿。其中有效VALID数据占20亿&#xff0c;无效数据INVALID占180亿。由于业务上有…

快应用(QuickApp)技术解析与UniApp跨端开发生态探秘优雅草卓伊凡

快应用&#xff08;QuickApp&#xff09;技术解析与UniApp跨端开发生态探秘优雅草卓伊凡引言&#xff1a;一场由快应用引发的技术辩论近日&#xff0c;优雅草科技的资深开发者卓伊凡在与甲方的一次项目沟通中&#xff0c;因技术选型问题展开了激烈讨论。甲方对快应用&#xff0…

《Font Awesome 参考手册》

《Font Awesome 参考手册》 引言 Font Awesome 是一个功能丰富的图标库,旨在帮助设计师和开发者快速地在网页上添加图标。它提供了超过700个矢量图标,并且支持响应式设计。本文将为您详细介绍 Font Awesome 的使用方法、图标分类、图标定制以及与 CSS 的结合。 一、Font A…

Linux基本命令篇 —— uname命令

uname命令是Linux系统中用于显示系统信息的实用工具&#xff0c;它可以提供关于操作系统、内核版本、硬件架构等重要信息。下面我将详细介绍这个命令的用法和常见应用场景。 目录 一、基本语法 二、常用选项 三、使用示例 显示所有系统信息&#xff08;最常用&#xff09; …

React Native 开发环境搭建--window--android

官网&#xff1a; https://reactnative.cn/docs/environment-setup 必须安装的 node, JDK ,android Studio 安装node 以前装了nvm, 用nvm install 18.0.0 就可以了 安装JDK 1、下载 ---- 我安装的是11 【JAVA17下载传送门】 注意&#xff01;&#xff01;&#xff01;1 …

ODS 系统是什么?企业为什么需要搭建 ODS?

目录 一、ODS 系统基础认知&#xff1a;先弄明白它是啥 1. 什么是 ODS 系统&#xff1f; 2. ODS 系统的起源 3. ODS 系统的特点 二、ODS 系统能干啥&#xff1f;核心功能解析 1. 数据集成 2. 数据清洗和转换 3. 实时数据更新 4. 数据查询和分析 三、企业为什么非得搭…

通过网页调用身份证阅读器http websocket方法-华视电子————仙盟创梦IDE

1.安装全浏览器网页专用监控软件 2.安装后 3.配置web接口 4.测试读取 5.驱动监控地址 时间段内读取身份证:如超时时间10000ms,则在点击按钮10秒内,放上身份证就可以读成功,超时返回失败; 读身份证:把身份证放上去后点击读卡,读成功,再次读卡需要将身份证拿起来再放回去; 不拿…

Spring Cloud 前端调用后端接口方式

在 Spring Cloud 微服务架构中&#xff0c;前端调用后端接口通常不直接通过 Eureka&#xff0c;而是通过以下两种核心方式实现&#xff1a; 一、前端直接调用后端服务&#xff08;需解决跨域和地址管理问题&#xff09; 1. AJAX 直接调用 前端通过 HTTP 请求&#xff08;如 …

【stm32】HAL库开发——CubeMX配置RTC,单片机工作模式和看门狗

目录 一、CubeMX配置RTC 1.RTC实时重要一环——BKP 寄存器 2.RTC实时时钟 2.1打开RTC并设置时间 2.2打开外部低速时钟 2.3代码实现&#xff1a; 二、单片机工作模式 1.低功耗睡眠模式(Sleep) 2.低功耗停止模式(Stop) 3.低功耗待机模式(StandBy) 三、看门狗 1.独立看…

9.Docker的容器数据卷使用(挂载)

什么是容器数据卷技术&#xff1f; 到这里&#xff0c;我算是入门docker了&#xff01; docker的理念&#xff1a;将环境和应用打包成一个镜像&#xff01;直接安装就能使用 如果数据都在容器中&#xff0c;那么我们一旦将容器删除&#xff0c;数据就会丢失&#xff01;因为…

使用 TCollector 写入 TDengine

TCollector 是 openTSDB 的一部分&#xff0c;它用来采集客户端日志发送给数据库。 只需要将 TCollector 的配置修改指向运行 taosAdapter 的服务器域名&#xff08;或 IP 地址&#xff09;和相应端口即可将 TCollector 采集的数据存在到 TDengine 中&#xff0c;可以充分利用…

高斯消元法详解

文章目录 概念用法特殊情况 我的奇怪方法 概念 什么是高斯消元?让我们看一看 OI-Wiki 的解释&#xff1a; 高斯消元法&#xff08;Gauss–Jordan elimination&#xff09;是求解线性方程组的经典算法&#xff0c;它在当代数学中有着重要的地位和价值&#xff0c;是线性代数课…

暴雨服务器成功中标华中科技大学集成电路学院服务器采购项目

近日&#xff0c;武汉暴雨信息发展有限公司在激烈的竞争中脱颖而出&#xff0c;成功中标华中科技大学集成电路学院的服务器采购项目。此次中标产品为暴雨旗下的塔式重装AM400服务器&#xff0c;这一成果标志着暴雨信息在高性能计算领域的卓越实力得到了高校科研机构的高度认可。…

集群聊天服务器---MySQL数据库的建立

数据库的建立表格 user表 字段名称字段类型字段说明约束idINT用户idPRIMARY KEY, AUTO_INCREMENTnameVARCHAR(50)用户名NOT NULL, UNIQUEpasswordVARCHAR(50)用户密码NOT NULLstateENUM(online, offline)当前登录状态DEFAULT offline friend表 字段名称字段类型字段说明约束…

MongoDB 安装使用教程

一、MongoDB 简介 MongoDB 是一个高性能、开源的 NoSQL 文档型数据库&#xff0c;使用 BSON&#xff08;二进制 JSON&#xff09;格式存储数据。适合存储大规模、高并发的非结构化数据&#xff0c;常用于大数据、日志存储、微服务架构中。 二、下载安装 2.1 官网下载 访问 …