ToB企服应用市场:ToB评测及商务社交产业平台

标题: 云服务器部署Java+Vue前后端分离项目 [打印本页]

作者: 知者何南    时间: 2024-8-15 13:09
标题: 云服务器部署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编辑没有样式,在文件末端输入以下内容:
  1. JAVA_HOME=/usr/local/jdk1.8.0_161
  2. JRE_HOME=/usr/local/jdk1.8.0_161/jre
  3. PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
  4. CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
  5. export JAVA_HOME JRE_HOME PATH CLASSPATH
复制代码
        然后生存退出,命令是 :wq 表示生存退出
        (4)验证是否配置成功
                java -version  ,出现下面内容表示jdk安装并配置成功

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

        1、假如已经安装,可以先删除
  1. # 列出已安装的docker包
  2. yum list installed|grep docker
  3. # 如果有,就卸载
  4. yum -y remove docker-ce
复制代码
        2、安装yum-utils管理yum源
  1. yum install -y yum-utils
复制代码
        3、设置docker源
  1. # 配置国内镜像速度快
  2. yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
复制代码
        4、设置元数据缓存
  1. yum makecache fast
复制代码
        5、安装、启动docker
  1. #安装docker
  2. yum -y install docker-ce
  3. #启动docker
  4. systemctl start docker
  5. #启动docker前,关闭防火墙 ,否则可能会启动失败
  6. #关闭防火墙命令
  7. systemctl stop firewalld.service
复制代码
 5、docker compose

        我用的docker版本已经包含了docker compose,假如版本较可能需要下载compose
        在/root下创建docker-compose.yml文件
  1. #创建空文件
  2. touch docker-compose.yml
复制代码
        然后在文件中添加配置,最好将文件导出后编辑,使用vi不太好编辑文件
  1. version: '3.1'
  2. services:
  3.   mysql:           # 服务的名称
  4.     restart: always   # 代表只要docker启动,那么这个容器就跟着一起启动
  5.     image: daocloud.io/library/mysql:5.7.30  # 指定镜像路径
  6.     container_name: mymysql  # 指定容器名称
  7.     ports:
  8.       - 3306:3306   #  指定端口号的映射
  9.     environment:
  10.       MYSQL_ROOT_PASSWORD: 123456   # 指定MySQL的ROOT用户登录密码
  11.       TZ: Asia/Shanghai        # 指定时区
  12.     volumes:
  13.      - /root/mysql/data:/var/lib/mysql   # 映射数据卷
  14.      - /root/mysql/conf/my.cnf:/etc/mysql/my.cnf
  15.   redis:
  16.     restart: always
  17.     image: daocloud.io/library/redis:5.0.7
  18.     container_name: myredis
  19.     ports:
  20.       - 6379:6379
  21.     volumes:
  22.       - /root/redis/conf/redis.conf:/etc/redis/redis.conf
  23.       - /root/redis/data:/data
  24.   nginx:
  25.     restart: always
  26.     image: daocloud.io/library/nginx:latest
  27.     container_name: mynginx
  28.     ports:
  29.       - 80:80
  30.     volumes:  
  31.       - /root/nginx/conf.d:/etc/nginx/conf.d
  32.       - /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包
打包插件:
  1. <build>
  2.         <plugins>
  3.             <plugin>
  4.                 <groupId>org.springframework.boot</groupId>
  5.                 <artifactId>spring-boot-maven-plugin</artifactId>
  6.                 <version>${spring-boot.version}</version>
  7.                 <configuration>
  8.                     <fork>true</fork> <!-- 如果没有该配置,devtools不会生效 -->
  9.                 </configuration>
  10.                 <executions>
  11.                     <execution>
  12.                         <goals>
  13.                             <goal>repackage</goal>
  14.                         </goals>
  15.                     </execution>
  16.                 </executions>
  17.             </plugin>
  18.             <plugin>
  19.                 <groupId>org.apache.maven.plugins</groupId>
  20.                 <artifactId>maven-jar-plugin</artifactId>
  21.                 <configuration>
  22.                     <archive>
  23.                         <manifest>
  24.                             <addClasspath>true</addClasspath>
  25.                             <useUniqueVersions>false</useUniqueVersions>
  26.                             <classpathPrefix>lib/</classpathPrefix>
  27.                             <!-- 此处是项目的主类路径-->                            <mainClass>com.qf.Java2403FemesAdminApplication</mainClass>
  28.                         </manifest>
  29.                     </archive>
  30.                 </configuration>
  31.             </plugin>
  32.         </plugins>
  33.         <finalName>${project.artifactId}</finalName>
  34.     </build>
复制代码
8、配置nginx

        在主机的/root/nginx/conf.d下创建default.conf文件,编辑该文件
  1. server {
  2.         listen       80;
  3.         server_name  localhost;
  4.         #charset koi8-r;
  5.         #access_log  logs/host.access.log  main;
  6.         location / {
  7.             # 部署到linux使用
  8.             root   /usr/share/nginx/html;   
  9.                         try_files $uri $uri/ /index.html;
  10.             index  index.html index.htm;
  11.         }
  12.             # 这里表示将包含 /prod-api的请求都转发到 proxy_pass 指定的链接中
  13.             # 这个是前端打包时指定的,可以参考.env.development和.env.production文件
  14.             location /prod-api/ {
  15.                       # proxy_set_header允许重新定义或添加字段传递给代理服务器的请求头
  16.                           proxy_set_header Host $http_host;
  17.                           proxy_set_header X-Real-IP $remote_addr;
  18.                           proxy_set_header REMOTE-HOST $remote_addr;
  19.                           proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  20.               # 部署到linux使用(服务器中项目路径和端口)
  21.               proxy_pass http://101.200.72.94:8888/;
  22.                        
  23.                           # 客户端发送请求的请求体的最大值,一般上传文件时,需要设置
  24.                       client_max_body_size 400m;
  25.               client_body_buffer_size 128k;
  26.               # 代理服务器相关的一些超时时间
  27.               proxy_connect_timeout 1000;
  28.               proxy_send_timeout 1000;
  29.               proxy_read_timeout 90;
  30.               # 代理服务器的缓存的大小
  31.               proxy_buffer_size 128k;
  32.               proxy_buffers 32 32k;
  33.               proxy_busy_buffers_size 128k;
  34.               proxy_temp_file_write_size 128k;
  35.                   }
  36.         #error_page  404              /404.html;
  37.         # redirect server error pages to the static page /50x.html
  38.         #
  39.         error_page   500 502 503 504  /50x.html;
  40.         location = /50x.html {
  41.             root   html;
  42.         }
  43.     }
复制代码
        然后重新加载docker的nginx命令
  1. docker exec mynginx nginx -s reload
复制代码
9、末了启动项目进行访问

        后端项目启动,进入/usr/local下,启动项目
  1. nohup java -jar xxx.jar &
复制代码
        网页访问测试,直接访问服务器ip即可,假如访问不成功,可能是端口需要在云服务器开放

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4