云服务器部署项目(Ubuntu24版本系统)纯命令,前后端分离
1.购买云服务器购买好服务器以后找到控制台找到对应的服务器复制好公网IP如图2.安装系统我的系统是Ubuntu24如果你的不是这个系统或者你之前使用了宝塔或者使用其他系统在购买云服务器的平台找到重装系统进去以后选择自己要的系统3.远程连接服务器文件传输部分文件管理器我使用WinSCP点击新增站点主机名的地方填写服务器公网IP用户名和密码地方也要和服务器里面一样如果不记得了购买服务器的地方找到对应的服务器点击重置密码点击登录以后会的到这个页面我一般将前端后端的文件放到/var/www目录下在这个目录下可以给每个项目新建一个文件夹里面就放前端后端还有Niginx配置文件远程连接 Linux 服务器我使用的Xshell添加的时候也是和WinSCP一样填写主机名用户名密码登录成功以后会显示绿色的小点4.安装需要使用的软件安装并检查JDK根据自己需要使用什么版本的安装sudo apt install -y openjdk-11-jdk java -version # 确认输出有 openjdk version 11安装Node.js(根据自己的需求安装版本)curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash - sudo apt install -y nodejs node -v # 确认输出 v18.x npm -v # 确认输出安装Niginxsudo apt install -y nginx nginx -v # 确认输出 nginx version安装Mysql服务器的防火墙添加它的默认端口3306sudo apt install -y mysql-server sudo systemctl enable mysql sudo systemctl start mysql mysql --version # 确认输出初始化数据库可设置root密码sudo mysql_secure_installation数据库安装完成以后使用登录mysql -u用户名 -p密码看是否登录成功如果没有登录成功如果你能用 sudo mysql 进去执行下面命令把 root 用户认证方式从 auth_socket 改为 mysql_native_password 并设置密码为 123456ALTER USER rootlocalhost IDENTIFIED WITH mysql_native_password BY 123456; FLUSH PRIVILEGES;在重新登录mysql -u root -p # 输入123456登录成功以后证明密码和用户都正确了mysql文件导入现在使用navcat远程连接数据库首先需要修改mysql的配合文件修改完成以后重启动mysql服务# Ubuntu/Debian sudo systemctl restart mysql回到navicat新建连接主机天服务器的ip用户名和密码填服务器mysql里面设置的完成以后在里面创建后端填的数据库名字然后在导入spl文件即可安装Rides服务器的防火墙添加它的默认端口6379sudo apt install -y redis-server sudo systemctl enable redis-server sudo systemctl start redis-server redis-server --version # 确认输出5.项目配置与打包前端部分我们需要注意的是配置代理的部分(这里需要注意)这里的后端接口还需要与后端的接口一直都是8086完成以后打开终端进行打包我的打包命令是npm run build打包命令看自己的package.json文件对应的命令后端部分服务器的防火墙添加它的端口8806文件上传现在回到winSCP里面连接你要部署的这一台服务器连接成功以后找到要放当前项目的路径创建一个单独的文件夹放整个文件的资源:6.配置Niginx文件编辑Niginx配置文件sudo nano /var/www/equipment.conf #或者 sudo vim /var/www/equipment.conf进入界面以后服务器的防火墙添加它的端口81添加过就不用在添加server { listen 81; listen [::]:81; server_name 自己服务器IP地址; # 静态资源配置 location /assets/ { root /var/www/equip/dist; expires 1y; add_header Cache-Control public, immutable; } location /favicon.ico { root /var/www/equip/dist; } location / { root /var/www/equip/dist; try_files $uri $uri/ /index.html; index index.html index.htm; # HTML 文件不缓存 add_header Cache-Control no-cache, no-store, must-revalidate; add_header Pragma no-cache; add_header Expires 0; } location ^~ /api/ { proxy_pass http://127.0.0.1:8086/; rewrite ^/api/(.*)$ /$1 break; proxy_connect_timeout 600s; proxy_send_timeout 600s; proxy_read_timeout 600s; send_timeout 600s; } # 可选开启 gzip 压缩如果需要 gzip on; gzip_static on; gzip_comp_level 6; gzip_types text/plain text/css text/javascript application/javascript application/json application/xml text/xml image/svgxml; gzip_min_length 1024; gzip_proxied any; gzip_vary on; gzip_disable msie6; }图片说明创建软链接sudo ln -s /var/www/equipment.conf /etc/nginx/conf.d/equipment.conf检查软链接是否成功ls -l /etc/nginx/conf.d/测试文件语法sudo nginx -t重载niginx让新配置生效sudo systemctl reload nginx7.运行jar包先使用jar命令查看是否可以运行成功/usr/lib/jvm/java-17-openjdk-amd64/bin/java -jar /var/www/equip/equipment-1.0-SNAPSHOT.jar --spring.config.location/var/www/equip/equipment.properties使用最佳systemd 服务文件用编辑器新建服务描述文件sudo vim /etc/systemd/system/newstudy.service[Unit] DescriptionSpring Boot Equipment Service Afternetwork.target [Service] Userubuntu WorkingDirectory/var/www/equip ExecStart/usr/lib/jvm/java-17-openjdk-amd64/bin/java -jar /var/www/equip/equipment-1.0-SNAPSHOT.jar SuccessExitStatus143 Restarton-failure RestartSec5 [Install] WantedBymulti-user.target如图需要注意的地方Userubuntu用哪个系统用户来运行服务重载 systemd 配置sudo systemctl daemon-reload启动服务sudo systemctl start newstudy查看状态sudo systemctl status newstudy设置开机自启可选sudo systemctl enable newstudy8.服务器防火墙设置所有使用到的端口都需要开防火墙