Skip to content

自动化脚本和域名绑定

编写自动化脚本

修改对应配置文件

首先需要核对配置文件是否符合需求

  • postgres 连接是否正常
  • nginx 是否添加对应映射
  • 后端项目的端口和前端项目的端口
bash
# 修改数据库配置
$ vim /home/template/ticket-base/ticket-base-run/src/main/resources/application-pg-dev.yml
db:
  url: ..
  username: ..
  password: ..

# 修改spring配置
$ vim /home/template/ticket-base/ticket-base-run/src/main/resources/application.yml
server:
  port: 8080

# 修改nginx配置
$ vim /etc/nginx/nginx.conf

自动打包程序脚本

编写自动打包脚本程序:build.sh

bash
$ vim build.sh
#!/bin/bash
# 前端打包
cd /home/template/ticket-base-ui
pnpm i
pnpm mvn
echo "front build success"
# 后端打包
cd /home/template/ticket-base
mvn clean install
echo "back build success"

# 修改为可执行文件
$ chmod 755 build.sh

注意:如果没有拉取流水线源操作,需执行 git pull

bash
echo "git pull"
git pull
# 查看最近一次提交 log
echo "git log -1"
git log -1

注意:从 Windows 直接复制脚本程序还需要修改换行格式

bash
# Windows复制需要额外操作
$ vim build.sh
:set ff=unix
:wq

自动开启关闭程序脚本

编写自动杀进程、启动程序脚本

bash
$ vim start.sh
#!/bin/bash
BASE=/home/template
FILE=ticket-base-1.0.0-SNAPSHOT.jar
# 删除历史数据
rm -rf $BASE/$FILE
# 数据包拷贝到指定位置
cp $BASE/ticket-base/ticket-base-run/target/$FILE $BASE/$FILE
PID=`ps -ef | grep ticket-base | grep 'java -jar' | awk '{printf $2}'`
# 如果pid为空,提示一下,否则,执行kill命令
if [ -z $PID ];
	then
		echo "java server not started"
	else
		kill -9 $PID
		echo "java server stoping...."
fi
# 启动程序
nohup java -jar $BASE/$FILE >/dev/null 2>&1 &
echo 'java server starting...'

域名

绑定域名

首先需要购买域名,并进行域名备案

进入域名解析页面,点击新手引导

image-20231124103605024

之后勾选 @主机记录和 www主机记录,输入对应网站 IP 即可。等待几分钟即可绑定成功

image-20231124103717742

HTTPS

进入 SSL 证书页面,首先领取当年年费 20 张证书的额度(领取过的无需重复领取)

image-20231206093521173

申请证书

image-20231206093622530

等待审核,几分钟就能申请下来

image-20231206093924109

下载 Nginx 证书

image-20231206094126488

云服务器ECS里给 HTTPS 443 端口添加到安全组

image-20231206094623088

nginx
server {
  listen 443 ssl http2;
  # 修改为你的网站
  server_name xxx;

  # 修改为你的证书存放目录
  ssl_certificate /home/cert/xx.pem;
  ssl_certificate_key /home/cert/xx.key;

  ssl_session_cache shared:SSL:1m;
  ssl_session_timeout 5m;

  ssl_protocols TLSv1.2 TLSv1.3;
  ssl_ciphers TLS_AES_128_GCM_SHA256:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_256_GCM_SHA384:TLS_AES_128_CCM_SHA256:TLS_AES_128_CCM_8_SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
  ssl_prefer_server_ciphers on;

  location / {
    # 代理到指定端口
    proxy_pass http://127.0.0.1:9093;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $http_host;
    proxy_set_header X-NginX-Proxy true;
    # 展示地址
    root /home/doc/cloud-doc;
    try_files $uri $uri/ /index.html;
    index index.html;
  }
}

常备不懈,才能有备无患