当前位置: 首页 > news >正文

企业网站框架图关键词排名点击软件推荐

企业网站框架图,关键词排名点击软件推荐,网站建设需要矢量文件,wap网站做视频直播1. 背景 在该实战中#xff0c;我们将探讨如何使用Docker Compose协同部署Nginx、Java、Mysql和Redis服务#xff0c;实现一个视频上传与展示的应用。具体需求如下#xff1a; Java应用负责上传视频和图片资源到Nginx目录下#xff0c;作为资源服务器。Nginx服务作为静态…1. 背景 在该实战中我们将探讨如何使用Docker Compose协同部署Nginx、Java、Mysql和Redis服务实现一个视频上传与展示的应用。具体需求如下 Java应用负责上传视频和图片资源到Nginx目录下作为资源服务器。Nginx服务作为静态资源服务器通过URL访问已上传的视频和图片资源。Java服务通过读取数据卷挂载的/data/init.properties文件获取服务器的IP地址用于拼接资源的访问URL。 2. 实现步骤 2.1 配置Java应用读取服务器IP 我们使用Spring的Profile注解和InitConfig类读取部署时挂载的/data/init.properties文件获取服务器IP。 拓展优化可以在项目所部署的服务器上写一个获取服务器IP的脚本Centos系统Docker获取宿主机IP地址MAC地址磁盘序列号和CPU序列号的shell脚本然后java通过运行该脚本获取服务器IP如果买了域名那更好了直接省掉拼接服务器IP的步骤。 import lombok.Data; import lombok.extern.slf4j.Slf4j; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Profile; import org.springframework.core.io.ClassPathResource; import org.springframework.stereotype.Component;import java.io.*; import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.Paths; import java.util.HashMap; import java.util.Map; import java.util.Properties; import java.util.Set; Profile({pro, docker}) Component Data public class InitConfig {private String serverIp;Beanpublic MapString, String loadLinuxConfig() {Properties prop new Properties();try (InputStream in new BufferedInputStream(Files.newInputStream(Paths.get(/data/init.properties)))) {prop.load(new InputStreamReader(in, StandardCharsets.UTF_8));} catch (IOException e) {log.error(Failed to load local configuration file InitConfig.properties, e);}SetString keySet prop.stringPropertyNames();MapString, String configMap new HashMap();for (String key : keySet) {String value prop.getProperty(key);log.info(Configuration loaded: key{}, value{}, key, value);configMap.put(key, value);}serverIp configMap.get(data.serverIp);return configMap;} }2.2编写init.properties文件 data.serverIp该key根据自己需求随意取名。 data.serverIp192.168.xx.xx2.3调整Java资源列表展示接口 返回列表给前端的时候将获取到的服务器IP拼接到资源的Url中。 Autowiredprivate VideoInfoMapper videoInfoMapper;Autowiredprivate InitConfig initConfig;/*** 获取资源视频列表** return {link ResponseResult }* param type 视频类型* param search 搜索关键词* author yangz*/Overridepublic ResponseResultListVideoInfo getVideoList(String type, String search) {ListVideoInfo videoList videoInfoMapper.selectByTypeAndSearch(type, search);for (VideoInfo videoInfo : videoList) {// 构建相对路径String relativePath videoInfo.getFileName();// 构建完整的 URL拼接 Nginx 的部署路径videoInfo.setUrl( http://initConfig.getServerIp():yourPort/static/ relativePath);// 同样处理 imageUrlString relativeImagePath videoInfo.getImageName();videoInfo.setImageUrl(http://initConfig.getServerIp():yourPort/static/ relativeImagePath);}return new ResponseResult(videoList);}2.4 编写Docker Compose 文件 这里volumes_from属性将Nginx容器的数据卷挂载到Java容器中实现了两个容器之间数据卷的共享。 这是因为Nginx容器中的/usr/share/nginx/static目录包含了Java上传的静态资源而volumes_from确保了Java容器可以访问这个目录。这样Nginx就能够正确地服务Java上传的资源了。 version: 3 services:# Nginxnginx:image: nginx:1.22.0container_name: nginx_educationrestart: alwaysports:- yourPort:8868- 83:80volumes:- ./nginx/html:/usr/share/nginx/html- ./nginx/static:/usr/share/nginx/static- ./nginx/nginx.conf:/etc/nginx/nginx.confprivileged: true# MySQLmysql:image: mysql:5.7ports:- yourPort:3306container_name: mysql_educationrestart: alwaysenvironment:MYSQL_ROOT_PASSWORD: yourPasswordvolumes:- ./mysql:/var/lib/mysql- ./init/:/docker-entrypoint-initdb.d/# Redisredis:image: redis:5.0.3container_name: redis_educationcommand: /usr/local/bin/redis-server /usr/local/etc/redis/redis.conf --appendonly yesrestart: alwaysports:- yourPort:6379volumes:- ./redis:/data- ./redis.conf:/usr/local/etc/redis/redis.conf- ./logs/redis:/logs# Javajava:image: java:8container_name: educationports:- yourPort:jarPortenvironment:- TZAsia/Shanghai- LANGen_US.UTF-8volumes:# 映射Java应用程序jar文件- ./xxx-education-xxx-0.0.1-SNAPSHOT.jar:/data/xxx-education-xxx-0.0.1-SNAPSHOT.jar# 映射Java应用程序的初始化配置文件- ./init/init.properties:/data/init.properties# 映射Java应用程序的日志目录- ./logs:/logs# 使用volumes_from属性挂载Nginx容器的数据卷到Java容器volumes_from:- nginx# Java应用程序的入口命令entrypoint: nohup java -jar /data/xxx-education-xxx-0.0.1-SNAPSHOT.jar --spring.profiles.activedocker nohup.out depends_on:- redis- mysqlrestart: on-failure networks:default:external:name: my-education2.5 Nginx配置 在Nginx的配置中我们配置了/static/路径的访问规则通过rewrite ^/(.)/$ /$1 permanent;将URI结尾的斜杠去掉并使用alias指定静态资源的路径。 注意172.17.0.1是Docker在部署docker-compose时创建的默认网关地址。在容器网络中这个地址充当了容器之间直接通信的网关。通过配置Nginx时使用这个地址使得即使服务器IP变化也不需要修改Nginx的代理配置。这样一来容器之间的通信可以通过网关地址和端口进行实现了更加灵活和方便的部署方式。 server {listen yourPort;location / {root /usr/share/nginx/html/dist;index index.html index.htm;try_files $uri $uri/ /index.html;}# 配置静态资源访问的路径location /static/ {rewrite ^/(.)/$ /$1 permanent;alias /usr/share/nginx/static/;}location /prod-api/ {client_max_body_size 1000m;proxy_pass http://172.17.0.1:jarPort/;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $remote_addr;}error_page 500 502 503 504 /50x.html;location /50x.html {root /usr/share/nginx/html;} }3. 部署与访问 使用docker-compose up -d命令启动所有服务。 访问Java容器中的日志文件查看Java应用启动时是否正确加载了服务器IP。 通过浏览器访问http://serverIP:Port/static/验证Nginx是否正确访问了Java上传的资源。 4. 结语 通过这个实战我们成功搭建了一个多服务协同部署的环境其中Nginx作为静态资源服务器Java负责业务逻辑。利用Docker Compose我们实现了服务的快速部署和环境一致性为开发和测试提供了便利。
http://www.pierceye.com/news/55303/

相关文章:

  • 视频网站费用怎样建设简单的网站
  • 资阳网站建设资阳足球直播网站怎么做
  • 坐什么网站能用到html5线下推广app赚佣金
  • 做网站在广东商城网站建设价格
  • 无锡阳山镇网站建设潍坊网站关键字优化
  • 织梦网站转移服务器广东省最新新闻
  • 建站教程的特点问答网站建设
  • asp网站源码一个门户网站怎么做
  • c 网站开发框架金溪网站建设
  • 浙江省嘉兴建设局官方网站公共服务标准化试点
  • 做网站需要花钱吗站长论坛 激活网站
  • 网站建设图书馆管理系统建设网站比较好公司吗
  • 做律师网站高臣网站建设公司
  • 南京华典建设有限公司网站网站 编码文档
  • 看动漫是怎么做视频网站中国最新经济新闻
  • 做ppt好的网站wordpress登入不进去
  • 建设学校网站需要具备网站制作开发技术
  • 免费门户网站模板网站兼容浏览器
  • 网站内页seoandroid程序开发教程
  • 上海网站平台建设tp类似wordpress
  • 自己做的网站某个网页打开很慢网页传奇打金
  • 东莞网站快速排名提升sem竞价外包公司
  • 外贸网站建设多少钱投资建设网站首页
  • 网站开发公司售后服务aso网站
  • 网站素材图qq客户端登录
  • 营销网站的特征软服业营收破334亿
  • 邢台企业做网站哪家好广州网站推广策划案
  • 上海珍岛做网站怎么样网站分析与优化
  • 北京开发网站网站备案填写网站名称
  • 深圳做网站联雅孝仙洪高速公路建设指挥部网站