云服务器部署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.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

        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即可,如果访问不成功,可能是端口需要在云服务器开放

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值