安装使用Yuelai Engine Blog - 前端
前端部署
前端文件创建一个web目录存放,也是在放后端系统的文件夹下创建
/opt/yuelaiengine/web
然后一样的,把准备好的前端文件上传解压。使用nuxt打包过的,解压之后是.output

先创建配置文件.env,vim /opt/yuelaiengine/web/.env。配置文件写入以下内容
NUXT_API_PROXY_TARGET=http://127.0.0.1:7777
NUXT_PUBLIC_API_BASE=/api/v1
NUXT_PUBLIC_SITE_URL=https://chixm.group
注意改写自己后端的端口信息和前端域名。
然后创建前端部分的系统服务配置
[Unit]
Description=Yuelai Engine Blog Frontend (Nuxt SSR)
Wants=network-online.target
After=network-online.target
[Service]
Type=simple
User=root
Group=root
WorkingDirectory=/opt/yuelaiengine/web
ExecStart=/usr/bin/env node /opt/yuelaiengine/web/.output/server/index.mjs
Restart=always
RestartSec=5
LimitNOFILE=65535
StandardOutput=journal
StandardError=journal
Environment=NODE_ENV=production
EnvironmentFile=-/opt/yuelaiengine/web/.env
[Install]
WantedBy=multi-user.target
vim /etc/systemd/system/yuelaiengine-blog.service,写入上面的配置,注意照着下图改成自己的

因为使用的是nvm 安装的node,但 nvm 安装的 Node 通常只在当前用户的 shell 配置中可用,systemd 不会加载.bashrc/.zshrc,会出现node 命令找不到的情况。
然后在 ExecStart 前设置了个环境变量。
[Service]
Environment="PATH=/root/.nvm/versions/node/v24.15.0/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
ExecStart=/usr/bin/env node /opt/yuelaiengine/web/.output/server/index.mjs

完成到这里,然后就是很经典的:
sudo systemctl daemon-reload
sudo systemctl enable yuelaiengine-blog
sudo systemctl start yuelaiengine-blog
前端跑起来之后,默认监听3000端口,然后nginx反向代理127.0.0.1:3000即可
如果想改端口,就在.env中加入NITRO_PORT=端口
这里端口不变,然后在nginx配置里把前端部分配置好
server {
listen 80;
listen 443 ssl;
http2 on;
server_name chixm.group;
if ($scheme = http) {
return 301 https://$host$request_uri;
}
# SSL 配置
ssl_certificate /etc/nginx/ssl/chixm.group.pem;
ssl_certificate_key /etc/nginx/ssl/chixm.group.key;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
ssl_prefer_server_ciphers off;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
# 开启 Gzip 压缩
gzip on;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
location / {
# Nuxt 程序运行在 3000 端口
proxy_pass http://localhost:3000;
proxy_set_header Host $host;
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 $scheme;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_cache_bypass $http_upgrade;
proxy_read_timeout 60s;
proxy_connect_timeout 60s;
}
}
以上配置可以做如下变动

然后重启nginx。
systemctl restart nginx
然后访问域名

自此,前端部署也算完成了。再去后台设置一下就能用了!

评论区