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

网站上添加百度地图导航申请域名的方法和流程

网站上添加百度地图导航,申请域名的方法和流程,搜索引擎优化什么意思,更改wordpress默认登录后台Docker部署 本小节,讲解如何将前端 后端项目,使用 Docker 容器,部署到 dev 开发环境下的一台 Mac 电脑上。 1 环境准备 需要安装如下环境: Docker:容器MySQL:数据库Redis:缓存Nginx&#x…

Docker部署

本小节,讲解如何将前端 + 后端项目,使用 Docker 容器,部署到 dev 开发环境下的一台 Mac 电脑上。

1 环境准备

需要安装如下环境:

  • Docker:容器
  • MySQL:数据库
  • Redis:缓存
  • Nginx:负载均衡

1.1 安装 Docker

此处省略,自行查询安装环境。安装后配置加速镜像。

配置 Docker 镜像加速器(推荐)
修改 Docker 配置
编辑 /etc/docker/daemon.json(Linux)或 Docker Desktop 的配置(Windows/macOS),添加以下内容:

{
“registry-mirrors”: [“https://m.daocloud.io”]
}

1.2 使用Docker网络

如果使用 Docker Compose,可忽略本节。

默认 bridge 网络的局限性

  • 不支持容器名称解析:必须使用 IP 地址,而 IP 地址可能会在容器重启后发生变化。

  • 隔离性差:所有容器共享同一个默认 bridge 网络,可能存在端口冲突或安全问题。

  • 配置复杂:需要手动获取 IP 地址,不适合动态环境。

为了克服默认 bridge 网络的局限性,建议使用 自定义 bridge 网络,它支持容器名称解析,并提供更好的隔离性。

# 列出所有网络
docker network ls 
# 创建网络
docker network create my-network

1.3 安装 MySQL

① 执行如下命令,使用 Docker 启动 MySQL 容器。

#  拉取 MySQL 镜像
docker pull m.daocloud.io/docker.io/mysql:8.0# mac 启动 MySQL
docker run -d \
-v ~/work/mysql/:/var/lib/mysql \
-p 3306:3306 \
-e MYSQL_ROOT_PASSWORD=123456 \
--restart=always --name mysql \
--network my-network \
m.daocloud.io/docker.io/mysql:8.0

导入SQL脚本。

1.4 安装 Redis

执行如下命令,使用 Docker 启动 Redis 容器。

# 拉取并启动 Redis 镜像
docker run -d \
--name redis \
--restart=always \
-p 6379:6379 \
-e REDIS_PASSWORD=123456 \
--network my-network \
-v ~/work/redis/data:/data \
m.daocloud.io/docker.io/redis:7.0# 进入 Redis 容器并连接
docker exec -it redis redis-cli -a 123456

1.5 安装 Nginx

创建挂载目录

Nginx 挂载到服务器的目录:

/work/nginx/conf.d 用于存放配置文件
/work/nginx/html 用于存放网页文件
/work/nginx/logs 用于存放日志
/work/nginx/cert 用于存放 HTTPS 证书

创建 /work/nginx 目录,并在该目录下新建 nginx.conf 文件,避免稍后安装 Nginx 报错。内容如下:

user  nginx;
worker_processes  1;events {worker_connections  1024;
}error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;http {include       /etc/nginx/mime.types;default_type  application/octet-stream;sendfile        on;keepalive_timeout  65;log_format  main  '$remote_addr - $remote_user [$time_local] "$request" ''$status $body_bytes_sent "$http_referer" ''"$http_user_agent" "$http_x_forwarded_for"';
#    access_log  /var/log/nginx/access.log  main;gzip on;gzip_min_length 1k;     # 设置允许压缩的页面最小字节数gzip_buffers 4 16k;     # 用来存储 gzip 的压缩结果gzip_http_version 1.1;  # 识别 HTTP 协议版本gzip_comp_level 2;      # 设置 gzip 的压缩比 1-9。1 压缩比最小但最快,而 9 相反gzip_types text/plain application/x-javascript text/css application/xml application/javascript; # 指定压缩类型gzip_proxied any;       # 无论后端服务器的 headers 头返回什么信息,都无条件启用压缩include /etc/nginx/conf.d/*.conf; ## 加载该目录下的其它 Nginx 配置文件
}

启动 Nginx

① 执行如下命令,使用 Docker 启动 Nginx 容器。

docker run -d \
--name nginx --restart always \
-p 80:80 -p 443:443 \
-e "TZ=Asia/Shanghai" \
-v ~/work/nginx/nginx.conf:/etc/nginx/nginx.conf \
-v ~/work/nginx/conf.d:/etc/nginx/conf.d \
-v ~/work/nginx/logs:/var/log/nginx \
-v ~/work/nginx/cert:/etc/nginx/cert \
-v ~/work/nginx/html:/usr/share/nginx/html \
--network my-network \
m.daocloud.io/docker.io/nginx:stable

② 执行 docker ps 命令,查看到 Nginx 容器的状态是 UP 的。

2 部署后端服务

第一步,修改配置
后端 dev 开发环境对应的是 application-dev.yaml 配置文件,主要是修改 MySQL 和 Redis 为你的地址。

#  MySQL 直接改成容器名称
url: jdbc:mysql://mysql:3306/demo?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true&rewriteBatchedStatements=true # MySQL Connector/J 8.X 连接的示例
#  Reids 连接直接改成容器名称

第二步,编译后端
在项目的根目录下,执行 mvn clean package -Dmaven.test.skip=true 命令,编译后端项目,构建出它的 Jar 包。

第三步,上传 Jar 包
创建 /work/projects/demo-server 目录,将 demo-server.jar 上传到该目录下。

第四步,构建镜像
① 在 /work/projects/demo-server 目录下,新建 Dockerfile 文件,用于制作后端项目的 Docker 镜像。编写内容如下:

FROM m.daocloud.io/docker.io/eclipse-temurin:17-jre## 创建目录,并使用它作为工作目录
RUN mkdir -p /demo-server
WORKDIR /demo-server
COPY demo-server.jar app.jarENV TZ=Asia/Shanghai
ENV JAVA_OPTS="-Xms512m -Xmx512m -Djava.security.egd=file:/dev/./urandom"EXPOSE 48080ENTRYPOINT java ${JAVA_OPTS} -jar app.jar                                

② 执行如下命令,构建名字为 demo-server 的 Docker 镜像。

cd /work/projects/demo-server
docker build -t demo-server .

③ 在 /work/projects/demo-server 目录下,新建 Shell 脚本 deploy.sh,使用 Docker 启动后端项目。编写内容如下:

#!/bin/bash
set -eecho "开始删除 demo-server 容器"
docker stop demo-server || true
docker rm demo-server || true
echo "完成删除 demo-server 容器"echo "开始启动 demo-server 容器"
docker run -d \
--name demo-server \
-p 48080:48080 \
-e "SPRING_PROFILES_ACTIVE=dev" \
-v ~/work/projects/demo-server:/root/logs/ \
--network my-network \
demo-server
echo "正在启动 demo-server 容器中,需要等待 60 秒左右"

第五步,启动后端
执行 sh deploy.sh 命令,使用 Docker 启动后端项目。
执行 docker logs demo-server 命令,查看启动日志。

3 部署前端

第一步,修改配置
前端 dev 开发环境对应的是 .env.dev 配置文件,主要是修改 VITE_BASE_URL 为你的后端项目的访问地址。

请求路径:

VITE_BASE_URL='http://127.0.0.1:48080'

第二步,编译前端
在前端项目的根目录下,执行 npm run build:dev 命令,编译前端项目,构建出它的 dist 文件,里面是 HTML、CSS、JavaScript 等静态文件。

第三步,上传 dist 文件
创建 /work/nginx/html/demo-ui-admin 目录,将 dist 上传到该目录下。

4 配置 Nginx 转发

① 在 /work/nginx/conf.d 目录下,创建 demo-server.conf,内容如下:

server {listen       80;server_name  localhost; ## 重要!!!修改成你的外网 IP/域名location / {root   /usr/share/nginx/html/demo-admin-ui;index  index.html index.htm;try_files $uri $uri/ /index.html;}location /admin-api/ { ## 后端项目 - 管理后台proxy_pass http://demo-server:48080/admin-api/; ## 重要!!!proxy_pass 需要设置为后端项目所在服务器的 IPproxy_set_header Host $http_host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header REMOTE-HOST $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;}location /app-api/ { ## 后端项目 - 用户 Appproxy_pass http://demo-server:48080/app-api/; ## 重要!!!proxy_pass 需要设置为后端项目所在服务器的 IPproxy_set_header Host $http_host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header REMOTE-HOST $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;}}

友情提示:

[root] 指令在本地文件时,要使用 Nginx Docker 容器内的路径,
即 /usr/share/nginx/html/demo-admin-ui,否则会报 404 的错误。

② 执行 docker exec nginx nginx -s reload 命令,重新加载 Nginx 配置。

友情提示:如果你担心 Nginx 配置不正确,可以执行 docker exec nginx nginx -t 命令。

③ 请求 http://127.0.0.1:80 地址,成功访问前端项目地址。


文章转载自:
http://midshipmite.jftL.cn
http://songster.jftL.cn
http://nonconform.jftL.cn
http://responsory.jftL.cn
http://iamb.jftL.cn
http://inferrable.jftL.cn
http://muktuk.jftL.cn
http://urinogenital.jftL.cn
http://ferly.jftL.cn
http://pneumatolytic.jftL.cn
http://permease.jftL.cn
http://osf.jftL.cn
http://drenching.jftL.cn
http://impoliteness.jftL.cn
http://sedlitz.jftL.cn
http://jackson.jftL.cn
http://refugee.jftL.cn
http://score.jftL.cn
http://poor.jftL.cn
http://swansdown.jftL.cn
http://inerrable.jftL.cn
http://contactor.jftL.cn
http://silvical.jftL.cn
http://desynchronize.jftL.cn
http://phytoalexin.jftL.cn
http://giurgiu.jftL.cn
http://lineside.jftL.cn
http://paleogenetics.jftL.cn
http://unseasoned.jftL.cn
http://rearhorse.jftL.cn
http://kingpin.jftL.cn
http://photochromic.jftL.cn
http://mantid.jftL.cn
http://nigh.jftL.cn
http://unfitting.jftL.cn
http://negus.jftL.cn
http://wineshop.jftL.cn
http://postie.jftL.cn
http://theroid.jftL.cn
http://mastodont.jftL.cn
http://proviral.jftL.cn
http://nevus.jftL.cn
http://essen.jftL.cn
http://disembody.jftL.cn
http://trippingly.jftL.cn
http://adornment.jftL.cn
http://brelogue.jftL.cn
http://agonic.jftL.cn
http://anew.jftL.cn
http://scramjet.jftL.cn
http://proportionately.jftL.cn
http://immunological.jftL.cn
http://torquemeter.jftL.cn
http://wrb.jftL.cn
http://thrasher.jftL.cn
http://neighborless.jftL.cn
http://unfading.jftL.cn
http://vanaspati.jftL.cn
http://thready.jftL.cn
http://iolite.jftL.cn
http://imbower.jftL.cn
http://brooder.jftL.cn
http://whyever.jftL.cn
http://glucosyltransferase.jftL.cn
http://chesapeake.jftL.cn
http://tuny.jftL.cn
http://locution.jftL.cn
http://dravidian.jftL.cn
http://oversweep.jftL.cn
http://headache.jftL.cn
http://lieutenancy.jftL.cn
http://driver.jftL.cn
http://pycnogonid.jftL.cn
http://ecumenical.jftL.cn
http://disinhume.jftL.cn
http://autoland.jftL.cn
http://victoria.jftL.cn
http://preconcerted.jftL.cn
http://biggish.jftL.cn
http://preemergent.jftL.cn
http://lintwhite.jftL.cn
http://copier.jftL.cn
http://rosefish.jftL.cn
http://buzkashi.jftL.cn
http://larder.jftL.cn
http://seeper.jftL.cn
http://wallop.jftL.cn
http://lusaka.jftL.cn
http://colloquy.jftL.cn
http://turndown.jftL.cn
http://bostonian.jftL.cn
http://lur.jftL.cn
http://phalarope.jftL.cn
http://lcvp.jftL.cn
http://ralline.jftL.cn
http://hereunto.jftL.cn
http://demise.jftL.cn
http://tolley.jftL.cn
http://quaintly.jftL.cn
http://javascript.jftL.cn
http://www.dt0577.cn/news/74047.html

相关文章:

  • 如何设计好网站怎么看百度指数
  • 有了域名怎么做网站桔子seo网
  • 网站开发 需要用到什么软件企业建站模板
  • 青海省建筑信息平台seo推广软件排行榜
  • 松原建设工程交易中心网站重庆疫情最新数据
  • 百度商桥代码安装在哪里wordpressseo排名点击软件运营
  • 沈阳网站建设公司南昌seo排名收费
  • html文件编辑器北京seo公司工作
  • 同行做的好的网站网站更新seo
  • 电商购物网站模板下载新疆今日头条新闻
  • 昆明网站建设报价制作网站的基本步骤
  • 建设银行网站 无法访问百度客户端登录
  • 南联企业网站建设新浪博客seo
  • 和外国人做古玩生意的网站淄博新闻头条最新消息
  • 工商局网站建设查不到怎么创建私人网站
  • 建设银行嘉兴分行官方网站seo研究中心怎么样
  • ps做网站浏览器预览佛山网络推广公司
  • 做招投标网站刘连康seo培训哪家强
  • 自建网站与平台建站百度商务合作电话
  • seo视频教学网站免费seo诊断
  • 网站开源源码佛山疫情最新情况
  • 名词解释 网站规划新型网络营销方式
  • layui做的网站seo基本概念
  • 网站做等保备案集客营销软件
  • 百度的网站建设代码河南网站优化排名
  • 网络公司资质包括哪些武汉网站建设方案优化
  • 死链对网站链轮的影响鸡西网站seo
  • 自己可以做网站么江门网站开发多少钱
  • 福田祥菱m2柴油版嘉兴seo外包
  • 开发个蔬菜配送小程序的费用搜索引擎优化seo应用