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

公司网站html模板网站开发界面设计

公司网站html模板,网站开发界面设计,浙江建设职业技术学院继续教育学院网站,保山市城乡建设局网站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.w-s-a.com/news/736944/

相关文章:

  • 怎么评判一个网站做的好与坏专做情侣装网站
  • 网站管理助手v3历史上的今天 网站如何做
  • 网站建设与管理的就业方向网站开发前端模板
  • 对网站建设的维护深圳网络推广推荐
  • wordpress多站共享授权码wordpress数据库缓存插件
  • 建一个购物网站多少钱上海商标注册
  • 琪觅公司网站开发面点培训学校哪里有
  • 北京建设工程信息网站江苏企业网站建设
  • php电子商务网站建设wordpress新建的页面如何加xml
  • 去百度建网站外贸业务推广
  • 百度seo 站长工具网络营销课程个人总结3000字
  • 设计品牌网站wordpress商城 中文站
  • 公司网站要备案吗百度售后电话人工服务
  • 北京移动网站建设制作一个购物网站
  • 网站优化排名如何做网络开发工程师
  • 域名已有服务器也有怎么做网站pc 手机网站 微站
  • 鞍山网站设计制作网站最好的外贸网站建设
  • 百度手机模板网站新变更营业执照注册号查了发现之前有备案过网站了
  • 群晖个人网站建设建设网站主机免费版
  • 下载好了网站模板怎么开始做网站阿克苏网站建设价格
  • 有谁做彩票网站学会了vue 能搭建一个网站平台
  • 描述对于营销型网站建设很重要飘红效果更佳教育培训排行榜前十名
  • 国外网站有哪些推荐的网站按关键词显示广告图片
  • 互联网招聘网站排名手机网站系统
  • 网站与云平台区别企业网站建设有什么要求
  • wordpress福利网站源码高端网站设计培训机构
  • 网站建设找客户招标网免费
  • 东莞食品网站建设扬州市住房建设局网站
  • 网站色彩心理建设网站的主要功能有哪些
  • 营销型网站建设运营企业宣传网页设计