自动化服务部署
服务配置
- 服务名称(serviceName)
- 服务端口(servicePort)
- 服务别名(serviceAlias)
服务入口
- 泛域名配置
- nginx 配置
- 域名解析配置
- 域名 https 证书配置
- 服务配置
- MySql 配置
- Redis 配置
- 前端服务部署
- 后端 java 服务部署
自动化部署方案
一、泛域名配置
泛域名: *.d.yanlingxinrui.com
为了实现自动化部署,首先需要配置泛域名。泛域名解析可以使一个域名(主域名)对应多个网站,用户在访问时可以根据不同的子域名来访问不同的网站。在 DNS 服务器中设置泛域名解析,将子域名与相应的 IP 地址绑定。这样,当用户访问某个子域名时,DNS 服务器会自动解析到相应的 IP 地址,从而实现多站点的部署。
二、Nginx 配置
server {
listen 80;
server_name ylxr.d.yanlingxinrui.com;
index index.html index.htm;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
root /home/data/web-fe/ylxr.d.yanlingxinrui.com/;
location / {
alias /home/data/web-fe/ylxr.d.yanlingxinrui.com/;
index index.html index.htm $uri.html;
try_files $uri $uri/ $uri.html /index.html;
}
location /api/ {
#Web网站程序存放目录
proxy_pass http://127.0.0.1:38083/api/;
proxy_set_header Host 'ylxr.d.yanlingxinrui.com';
#proxy_set_header Host '127.0.0.1';
proxy_set_header X-Real-IP '127.0.0.1';
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto 'https';
proxy_set_header X-Forwarded-Host 'ylxr.d.yanlingxinrui.com';
proxy_connect_timeout 30;
proxy_send_timeout 60;
proxy_read_timeout 60;
}
}
Nginx 是一个高性能的 HTTP 和反向代理服务器,同时也是一个 IMAP/POP3/SMTP 代理服务器。为了实现自动化部署,我们需要对 Nginx 进行配置。首先,需要在 Nginx 配置文件中添加服务器块,每个服务器块对应一个子域名和相应的网站目录。然后,根据需要配置静态资源、反向代理等。
三、域名解析配置
为了实现自动化部署,我们需要将子域名解析到相应的服务器 IP 地址。在 DNS 服务器中添加 A 记录,将子域名与服务器 IP 地址绑定。这样,当用户访问某个子域名时,DNS 服务器会自动将其解析到指定的 IP 地址。
四、域名 HTTPS 证书配置
#SSL 默认访问端口号为 443
listen 443 ssl;
#请填写绑定证书的域名
server_name wildcard.d.yanlingxinrui.com *.d.yanlingxinrui.com;
#请填写证书文件的相对路径或绝对路径
ssl_certificate /etc/nginx/ssl/yanlingxinrui.com/d.yanlingxinrui.com.pem;
#请填写私钥文件的相对路径或绝对路径
ssl_certificate_key /etc/nginx/ssl/yanlingxinrui.com/d.yanlingxinrui.com.key;
ssl_session_timeout 5m;
#请按照以下套件配置,配置加密套件,写法遵循 openssl 标准。
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
#请按照以下协议配置
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
为了提高网站的安全性,我们需要为网站配置 HTTPS 证书。可以选择购买商业证书或使用免费的证书颁发机构(CA)提供的证书。在配置 HTTPS 证书时,需要将证书和私钥文件上传到服务器,并在 Nginx 配置文件中添加 SSL 证书的相关配置。
五、服务配置
sed -i \'s/port: 8080\\b/port: ${PORT}/g\' src/main/resources/application.yml;
mkdir -p \'/tmp/xinrui/logs/${DB_NAME}\';
sed -i \'s/\\(\\/tmp\\/xinrui\\/logs\\)/\\1\\/${DB_NAME}/g\' src/main/resources/logback.xml;
为了实现自动化部署,我们需要对服务器进行配置。对服务端口,服务数据库名字,以及日志存放的目录。
六、MySQL 配置
sed -i \'s/\\bxinrui_db_name\\b/${DB_NAME}/g\' src/main/resources/application-druid.yml;
sed -i \'s/\\bxinrui_db_password\\b/${MYSQL_PASSWORD}/g\' src/main/resources/application-druid.yml;
如果网站需要使用数据库,我们可以选择 MySQL 作为数据库管理系统。在服务器上安装 MySQL,并创建所需的数据库和用户。根据需要配置 MySQL 的性能和安全设置。
七、Redis 配置
sed -i \'s/\\bxinrui_redis_prefix\\b/${REDISPREFIX}/g\' src/main/resources/application-druid.yml;
Redis 是一个高性能的键值对存储系统,可以用于缓存、消息队列等场景。如果网站需要使用 Redis,可以在服务器上安装 Redis 并进行相应的配置。根据需要配置 Redis 的内存大小、持久化等设置。
八、前端服务部署
npm install;
npm run build;
mkdir -p /home/data/web-fe/${DOMAIN}.d.yanlingxinrui.com/;
cp -r ./dist/* /home/data/web-fe/${DOMAIN}.d.yanlingxinrui.com/;
前端服务通常包括 HTML、CSS、JavaScript 等静态资源文件。为了实现自动化部署,我们可以使用构建工具(如 Webpack)将前端代码打包成静态资源文件,并将其上传到服务器的指定目录。在 Nginx 配置文件中添加静态资源的相关配置,以便正确地提供这些文件。
九、后端 Java 服务部署
lsof -i :${PORT} | grep java | awk \'{print \$2}\' | xargs -I {} kill {};
mkdir -p /home/data/web-server/${DOMAIN}.d.yanlingxinrui.com/;
cp ruoyi-admin.jar /home/data/web-server/${DOMAIN}.d.yanlingxinrui.com/;
nohup /usr/bin/java -jar /home/data/web-server/${DOMAIN}.d.yanlingxinrui.com/ruoyi-admin.jar > /home/data/web-server/${DOMAIN}.d.yanlingxinrui.com/nohup.out 2>&1 &
如果网站后端使用 Java 技术栈,我们可以使用 Maven 或 Gradle 等构建工具来构建项目,并生成可执行 JAR 或 WAR 文件。将 JAR 或 WAR 文件上传到服务器的指定目录,并使用 Java 命令启动服务。在服务器上安装 Java 运行时环境(JRE)或开发工具包(JDK)。根据需要配置服务器的日志管理、性能监控等设置。
十、服务个性化配置
将模板文件中的公司名,公司介绍,以及联系方式更换为当前租户的相关信息。