一文搞定宝塔LINUX部署上线前后端分离项目
地址:http://82.156.126.178/
部署方案:
宝塔Linux,腾讯云服务器2核2G3M,数据库使用腾讯云托管平台mysql
1.跨域问题解决
首先前端区分线上环境和开发环境,主要是请求地址不一样
import axios from 'axios'const prefix=process.env.NODE_ENV ==='production' ? 'http://82.156.126.178:8000/api' : 'http://localhost:8000/api'const api = axios.create({baseURL: prefix,timeout: 5000,headers: {//'Content-Type': 'application/json'}
})
然后后端的所有Controller
增加允许跨域的注解
@CrossOrigin(origins = {"http://localhost:8080","http://82.156.126.178"}, allowCredentials = "true")
2.前端打包
3.后端打包
4.部署到云服务器
前端 添加站点->网站名为宝塔Linux公网IP->将前端dist
目录下的文件上传到网站根目录
后端 添加java项目->jar包路径选择/www/wwwroot/bupt-hotel-backend/bupt-hotel-backend-0.0.1-SNAPSHOT.jar
(需要自己上传到相应位置)
项目启动命令为
/www/server/java/jdk-17.0.8/bin/java -jar -Xmx1024M -Xms256M /www/wwwroot/bupt-hotel-backend/bupt-hotel-backend-0.0.1-SNAPSHOT.jar
前端配置文件为:
server
{listen 80;server_name 82.156.126.178;index index.php index.html index.htm default.php default.htm default.html;root /www/wwwroot/82.156.126.178;#CERT-APPLY-CHECK--START# 用于SSL证书申请时的文件验证相关配置 -- 请勿删除include /www/server/panel/vhost/nginx/well-known/82.156.126.178.conf;#CERT-APPLY-CHECK--END#SSL-START SSL相关配置,请勿删除或修改下一行带注释的404规则#error_page 404/404.html;#SSL-END#ERROR-PAGE-START 错误页配置,可以注释、删除或修改error_page 404 /404.html;#error_page 502 /502.html;#ERROR-PAGE-END#PHP-INFO-START PHP引用配置,可以注释或修改include enable-php-00.conf;#PHP-INFO-END#REWRITE-START URL重写规则引用,修改后将导致面板设置的伪静态规则失效include /www/server/panel/vhost/rewrite/82.156.126.178.conf;#REWRITE-END#禁止访问的文件或目录location ~ ^/(\.user.ini|\.htaccess|\.git|\.env|\.svn|\.project|LICENSE|README.md){return 404;}#一键申请SSL证书验证目录相关设置location ~ \.well-known{allow all;}#禁止在证书验证目录放入敏感文件if ( $uri ~ "^/\.well-known/.*\.(php|jsp|py|js|css|lua|ts|go|zip|tar\.gz|rar|7z|sql|bak)$" ) {return 403;}location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)${expires 30d;error_log /dev/null;access_log /dev/null;}location ~ .*\.(js|css)?${expires 12h;error_log /dev/null;access_log /dev/null;}access_log /www/wwwlogs/82.156.126.178.log;error_log /www/wwwlogs/82.156.126.178.error.log;
}