📄 linux 部署微服务版本 👍
内部资料,请刷新扫码登录
pigcloud
请按照本文档的指导进行部署,部署过程基于 PIGX 服务 2000+企业客户实践总结,网络安全请慎重 请慎重。
本章文档对应视频 📺 20.阿里云 ECS 部署
# 初始化 ECS
# 购买 ECS
自定义购买 | 配置 |
---|---|
付费类型 | 按量付费 |
实例 | 4vCPU/16GiB/Intel 处理器 |
镜像 | CentOS 8.5 64 位 |
系统盘 | 100GB |
公网 IP | 分配 |
带宽计费模式 | 按使用流量 |
带宽峰值 | 100Mbps |
# 初始化 CentOS8
curl -O http://vip.pigx.top/os8init.sh
sh os8init.sh pig4cloud
# 安装 JDK
wget https://cdn.azul.com/zulu/bin/zulu17.44.15-ca-jdk17.0.8-linux.x86_64.rpm
rpm -ivh zulu17.44.15-ca-jdk17.0.8-linux.x86_64.rpm
java -version
# 配套字体库安装
yum install -y fontconfig mkfontscale
# 安装 Mysql 8
初始化脚本会自动安装 docker,这里使用 docker 安装避免环境不统一
mkdir -p /data/mysql/data /data/mysql/conf
docker run -d --name pigx-mysql \
-p 3306:3306 \
-e MYSQL_ROOT_HOST="%" \
-e MYSQL_ROOT_PASSWORD=root \
--restart unless-stopped \
-v /data/mysql/data:/var/lib/mysql \
-v /data/mysql/conf:/etc/mysql/conf.d \
registry.cn-hangzhou.aliyuncs.com/dockerhub_mirror/mysql-server:8.4.4 \
--lower_case_table_names=1
# 安装 Redis
docker run -d --name redis-server \
-p 6379:6379 \
--restart unless-stopped \
registry.cn-hangzhou.aliyuncs.com/dockerhub_mirror/redis
# 安装 NGINX
vim /etc/yum.repos.d/nginx.repo
#文件中写入-------------------
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
#-------------------
yum install -y yum-utils
yum-config-manager --enable nginx-mainline
yum install -y nginx
# 配置 hosts
vim /etc/hosts
#文件中写入-------------------
127.0.0.1 pigx-register
127.0.0.1 pigx-gateway
127.0.0.1 pigx-redis
127.0.0.1 pigx-mysql
127.0.0.1 pigx-sentinel
127.0.0.1 pigx-xxl
127.0.0.1 pigx-seata
#-------------------
source /etc/hosts
# 部署 pigx
# 准备源码包
在服务端项目根目录执行以下Maven命令生成JAR包(注意:务必在项目根目录执行)
重要提示:请始终使用Maven命令行打包
IDEA图形界面打包可能存在环境配置问题,可能导致不可预期的问题,建议优先使用标准化构建流程
mvn clean install -Pcloud
mvn clean install
- pigx-ui 前端 编译 dist ,在前端根目录执行
npm run build
# 初始化数据库
- pigx db 目录
source 1schema.sql
source 2pigxx.sql
source 3pigxx_ac.sql
source 4pigxx_job.sql
source 5pigxx_mp.sql
source 6pigxx_config.sql
source 7pigxx_pay.sql
source 8pigxx_codegen.sql
# 启动服务端
nohup java -Dfile.encoding=utf-8 -jar pigx-register.jar > /dev/null 2>&1 &
nohup java -Dfile.encoding=utf-8 -jar pigx-monitor.jar > /dev/null 2>&1 &
nohup java -Dfile.encoding=utf-8 -jar pigx-gateway.jar > /dev/null 2>&1 &
nohup java -Dfile.encoding=utf-8 -jar pigx-auth.jar > /dev/null 2>&1 &
nohup java -Dfile.encoding=utf-8 -jar pigx-upms-biz.jar > /dev/null 2>&1 &
# 部署前端
mkdir -p /data/pigx-ui && cp -r dist/* /data/pigx-ui
cd /etc/nginx/conf.d && rm -f default.conf
vim pigx.conf
#文件中写入-------------------
server {
listen 80;
server_name localhost;
gzip on;
gzip_static on; # 需要http_gzip_static_module 模块
gzip_min_length 1k;
gzip_comp_level 4;
gzip_proxied any;
gzip_types text/plain text/xml text/css;
gzip_vary on;
gzip_disable "MSIE [1-6]\.(?!.*SV1)";
# 前端打包好的dist目录文件
root /data/pigx-ui/;
location ^~/api/ {
proxy_pass http://127.0.0.1:9999/; #注意/后缀
proxy_connect_timeout 60s;
proxy_read_timeout 120s;
proxy_send_timeout 120s;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto http;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $http_host;
}
# 屏蔽所有敏感路径,不用改代码
location ~* ^/(actuator|swagger-ui|v3/api-docs|swagger-resources|webjars|doc.html) {
return 403; # 禁止访问
}
}
#-------------------
nginx
🌟安全建议:安全问题无小事!部署过程基于 PIGX 服务 2000+企业客户实践总结,网络安全请慎重 请慎重!!
安全建议
生产条件下关闭 swagger、actuator 端点
- nacos/application-dev.yml
# 配置安全属性:关闭端点、关闭swagger
management:
endpoints:
enabled-by-default: false
springdoc:
api-docs:
enabled: false

对外端口、安全组说明
默认情况下,服务器仅对外开放基础的 80/443 nginx 服务端口,nginx 配置按本文的复制!!!
端口号 | 功能 | 生产环境建议 |
---|---|---|
80/443 | 常规网关访问 | 开放 |
5001 | 监控 | 限制性开放,仅信任 IP 可访问 |
5020 | 监控 | 限制性开放,仅信任 IP 可访问 |