【云服务器部署springboot项目】过程中的一些操作记录

前置操作

在云服务器上安装JDK、Node、Nginx、Mysql。

前端、后端代码打包后移动到云服务器

后端通过package操作后,在项目target目录中找到打包好的程序jar包,传到云服务器后通过 nohup java -jar xxxx.jar > output.log 2>&1 &命令在后台运行java程序。

nohup命令用于使程序忽略SIGHUP信号,并继续在后台运行。java -jar YourProgram.jar是运行jar程序的命令。> output.log将程序的标准输出重定向到一个名为output.log的文件。2>&1将标准错误输出重定向到和标准输出相同的地方。&用于将命令放入后台执行。

前端通过npm run build打包后直接移动到云服务器即可。注意打包前将所有访问的后端接口的地址中的localhost换成云服务器的IP。

Nginx:nginx.conf配置

server {
    listen       8080; #前端端口
    server_name  localhost;
	root   /huang/demoFile/dist; #前端文件打包后在云服务器中的存储路径
	index index.html;
	location /api/ { #注意“/”
      		proxy_pass http://your IP:8088/; #被代理的后端服务器访问地址
      		# 添加以下行以避免 // 的问题
        	proxy_redirect off;
        	proxy_set_header Host $host;
        	proxy_set_header X-Real-IP $remote_addr;
        	proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        	proxy_set_header X-Forwarded-Proto $scheme;

       	 	# 处理连续的斜杠(可选)
        	rewrite ^//(.*)$ /$1 break;  # 将 // 替换为 /
   	}
	location / {
            try_files $uri $uri/ /index.html;
        }

对应的Vue中的配置

  devServer:{
    proxy:{
      '/api':{
        target:'http://your IP:8088',
        ws: true,
        changeOrigin: true,
        pathRewrite: {
          '^/api':''
        }
      }
    }
  },
  publicPath: './',//这个地方要加“.”,不然获取不到资源,访问是空白页

一个小坑

后端代码中的文件读取操作通常都是通过路径去访问文件,例如

new File("src/main/resources/holiday.txt");

其中,holiday.txt是放在项目resources目录下文件。当打成jar包后继续以这种形式访问文件就会出现问题,系统会报找不到文件的错误,因为此时文件在jar包中已经不以这个路径存储了,自然找不到。网上的一个解决办法是

ClassPathResource resource = new ClassPathResource("holiday.txt");
InputStream inputStream = resource.getInputStream();
File tempFile = File.createTempFile("temp", ".txt");
FileUtils.copyInputStreamToFile(inputStream, tempFile);

这样最终的tempFile就是我们需要读取到的文件了。

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值