知者何南 发表于 2024-8-15 13:09:45

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

1、申请一个云服务器

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

        使用FinalShell工具大概其他远程工具,使用SSH链接,主机地点要填写阿里云服务的公网ip,假如链接不上可能需要加快,将智能加快勾选上即可
https://i-blog.csdnimg.cn/direct/6dc2314162734760afb12ce44b6d5930.png
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安装并配置成功
https://i-blog.csdnimg.cn/direct/383a02dbc33f419cac4be8ac10c9996f.png
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.cnf
redis:
    restart: always
    image: daocloud.io/library/redis:5.0.7
    container_name: myredis
    ports:
      - 6379:6379
    volumes:
      - /root/redis/conf/redis.conf:/etc/redis/redis.conf
      - /root/redis/data:/data
nginx:
    restart: always
    image: daocloud.io/library/nginx:latest
    container_name: mynginx
    ports:
      - 80:80
    volumes:
      - /root/nginx/conf.d:/etc/nginx/conf.d
      - /root/nginx/dist:/usr/share/nginx/html         留意配置要改成自己的,不要全部复制粘贴
        配置好就可以启动了,启动docker compose up -d
https://i-blog.csdnimg.cn/direct/dfaf0dd7042943aeab3d54609856f0cf.png
        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_namelocalhost;
      #charset koi8-r;

      #access_loglogs/host.access.logmain;

      location / {
            # 部署到linux使用
            root   /usr/share/nginx/html;   
                        try_files $uri $uri/ /index.html;
            indexindex.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_page404            /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即可,假如访问不成功,可能是端口需要在云服务器开放

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 云服务器部署Java+Vue前后端分离项目