当前位置: 首页 > news >正文

云服务器部署Java+Vue前后端分离项目

1、申请一个云服务器

        选择云服务器:阿里云、腾讯云、百度云、京东云、华为云等等,我使用的是阿里云服务器。

2、远程链接服务器

        使用FinalShell工具或者其他远程工具,使用SSH链接,主机地址要填写阿里云服务的公网ip,如果链接不上可能需要加速,将智能加速勾选上即可

3、安装软件jdk、mysql、redis、nginx等

        (1)下载jdk,并且上传到/usr/local中,然后解压缩

        linux版本的jdk链接如下:

        链接:https://pan.baidu.com/s/1YDmWQU66iYpnqJ4Wwmcj2w?pwd=vwpl 
        提取码:vwpl

        也可以自己从官网下载(Java Downloads | Oracle 中国)

        (2)解压命令  tar -zxf jdk-8u161-linux-x64.tar.gz

        (3)配置环境变量

                使用vim命令编辑profile文件,如果vim没有下载也可以使用vi命令编辑,但是vi编辑没有样式,在文件末尾输入以下内容:

JAVA_HOME=/usr/local/jdk1.8.0_161
JRE_HOME=/usr/local/jdk1.8.0_161/jre
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
export JAVA_HOME JRE_HOME PATH CLASSPATH

        然后保存退出,命令是 :wq 表示保存退出

        (4)验证是否配置成功

                java -version  ,出现下面内容表示jdk安装并配置成功

4、docker安装(通过docker compose安装mysql、redis、nginx)

        1、如果已经安装,可以先删除

# 列出已安装的docker包yum list installed|grep docker 
# 如果有,就卸载yum -y remove docker-ce

        2、安装yum-utils管理yum源

 yum install -y yum-utils

        3、设置docker源

# 配置国内镜像速度快
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

        4、设置元数据缓存

yum makecache fast

        5、安装、启动docker

#安装docker
yum -y install docker-ce #启动docker
systemctl start docker#启动docker前,关闭防火墙 ,否则可能会启动失败
#关闭防火墙命令
systemctl stop firewalld.service

 5、docker compose

        我用的docker版本已经包含了docker compose,如果版本较可能需要下载compose

        在/root下创建docker-compose.yml文件

#创建空文件
touch docker-compose.yml

        然后在文件中添加配置,最好将文件导出后编辑,使用vi不太好编辑文件

version: '3.1'
services:mysql:           # 服务的名称restart: always   # 代表只要docker启动,那么这个容器就跟着一起启动image: daocloud.io/library/mysql:5.7.30  # 指定镜像路径container_name: mymysql  # 指定容器名称ports:- 3306:3306   #  指定端口号的映射environment:MYSQL_ROOT_PASSWORD: 123456   # 指定MySQL的ROOT用户登录密码TZ: Asia/Shanghai        # 指定时区volumes:- /root/mysql/data:/var/lib/mysql   # 映射数据卷- /root/mysql/conf/my.cnf:/etc/mysql/my.cnfredis:restart: alwaysimage: daocloud.io/library/redis:5.0.7container_name: myredis ports:- 6379:6379volumes:- /root/redis/conf/redis.conf:/etc/redis/redis.conf- /root/redis/data:/datanginx:restart: alwaysimage: daocloud.io/library/nginx:latestcontainer_name: mynginxports:- 80:80volumes:  - /root/nginx/conf.d:/etc/nginx/conf.d- /root/nginx/dist:/usr/share/nginx/html

        注意配置要改成自己的,不要全部复制粘贴

        配置好就可以启动了,启动docker compose up -d

        docker ps查询进程,可以看到容器已经创建好并运行起来了,后续如果再使用的话,只需执行docker compose start就可以一键全启动了

        容器创建好以后建议本地工具连接此时一下,使用数据库工具连接云服务的mysql,RedisMeanager工具连接云服务的redis,如果连接不上,要检查云服务器安全组的端口是否开放

6、同步数据

        将本地的数据库的表导出,并导入mysql云服务器中

7、打包项目并上传

        前端记得修改代理的ip地址,运行npm run build:prod,前端会打包成dist文件夹,将dist上传至服务器的/root/nginx/dist下

        后端需要修改pom文件,加入打包插件,记得修改配置中的ip,最后再侧边栏的meaven双击package进行打包,会将后端项目打成jar包

打包插件:

 <build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><version>${spring-boot.version}</version><configuration><fork>true</fork> <!-- 如果没有该配置,devtools不会生效 --></configuration><executions><execution><goals><goal>repackage</goal></goals></execution></executions></plugin><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-jar-plugin</artifactId><configuration><archive><manifest><addClasspath>true</addClasspath><useUniqueVersions>false</useUniqueVersions><classpathPrefix>lib/</classpathPrefix><!-- 此处是项目的主类路径-->                            <mainClass>com.qf.Java2403FemesAdminApplication</mainClass></manifest></archive></configuration></plugin></plugins><finalName>${project.artifactId}</finalName></build>

8、配置nginx

        在主机的/root/nginx/conf.d下创建default.conf文件,编辑该文件

server {listen       80;server_name  localhost;#charset koi8-r;#access_log  logs/host.access.log  main;location / {# 部署到linux使用root   /usr/share/nginx/html;   try_files $uri $uri/ /index.html;index  index.html index.htm;}# 这里表示将包含 /prod-api的请求都转发到 proxy_pass 指定的链接中# 这个是前端打包时指定的,可以参考.env.development和.env.production文件location /prod-api/ {# proxy_set_header允许重新定义或添加字段传递给代理服务器的请求头proxy_set_header Host $http_host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header REMOTE-HOST $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;# 部署到linux使用(服务器中项目路径和端口)proxy_pass http://101.200.72.94:8888/; # 客户端发送请求的请求体的最大值,一般上传文件时,需要设置client_max_body_size 400m;client_body_buffer_size 128k;# 代理服务器相关的一些超时时间proxy_connect_timeout 1000;proxy_send_timeout 1000;proxy_read_timeout 90;# 代理服务器的缓存的大小proxy_buffer_size 128k;proxy_buffers 32 32k;proxy_busy_buffers_size 128k;proxy_temp_file_write_size 128k;}#error_page  404              /404.html;# redirect server error pages to the static page /50x.html#error_page   500 502 503 504  /50x.html;location = /50x.html {root   html;}}

        然后重新加载docker的nginx命令

docker exec mynginx nginx -s reload

9、最后启动项目进行访问

        后端项目启动,进入/usr/local下,启动项目

nohup java -jar xxx.jar &

        网页访问测试,直接访问服务器ip即可,如果访问不成功,可能是端口需要在云服务器开放

http://www.lryc.cn/news/420880.html

相关文章:

  • C++的7种设计模式原则
  • 24.8.5数据结构|栈
  • LeetCode算法题训练
  • Python | Leetcode Python题解之第326题3的幂
  • 手机CPU性能天梯图(2024年8月),含安兔兔/GB6/3DMark跑分
  • 通过实际的例子和代码演示,可以更好地理解 `optional` 的使用方式和应用场景
  • Java 电商秒杀系统优化实战:实现进阶示例详解与 RabbitMQ 配置
  • 路径规划 | 基于狼群算法的无人机路径规划(Matlab)
  • 13-python函数返回值和装包的后续提取数据方法——解包
  • I. 对线
  • Topsis法模型(评价类问题)
  • HPA 与pod调度
  • jupyter下载
  • 蓝桥杯双周赛 第 16 场 小白入门赛 解题报告 | 珂学家 | 七夕娱乐场
  • [C++] 深入理解面向对象编程特性 : 继承
  • 汇昌联信科技做拼多多电商怎么引流?
  • 公网ip和私网ip的区别
  • 【开发踩坑】windows查看jvm gc信息
  • 时间序列预测 | CEEMDAN+CNN+Transformer多变量时间序列预测(Python)
  • vue3--实现vue2插件JSONPathPicker的路径获取功能
  • SuccBI+低代码文档中心 — 可视化分析(仪表板)(上)
  • P3156 【深基15.例1】询问学号
  • 详解Xilinx FPGA高速串行收发器GTX/GTP(5)--详解8B10B编解码
  • python 画多盘的写放大曲线方法
  • 计算机网络TCP/UDP知识点
  • JavaScript 文档元素获取
  • docker pull实现断点续传
  • 无字母数字webshell之命令执行
  • 华为OD笔试
  • HAProxy理论+实验