后端部署
方法流程
-
使用maven打jar包,jar包生成在项目目录/target中
shellmvn package
-
进入目录,运行jar包。
shelljava -jar <jar包名>.jar
不过考虑到后端需要保持运行,推荐用这个,可以在后台运行,并将日志输出到output.log
shellnohup java -jar /path/to/spring-boot-application.jar > output.log 2>&1 &
遇到的问题
$ java jar chatRecommendation-0.0.1-SNAPSHOT.jar Error: Could not find or load main class jar Caused by: java.lang.ClassNotFoundException: jar
命令中的 jar 是参数,加连字符-jar
net::ERR_CONNECTION_REFUSED
服务器防火墙没打开端口
服务器同时运行前后端项目,前端也不能将请求地址写为
localhost
因为请求是用户在主机发送的,所以还要将项目中使用了回环地址的部分重写。因此应该在写代码时就提出一个全局变量baseUrl,保存IP地址。
*************************** APPLICATION FAILED TO START ***************************
Description: Web server failed to start. Port 8080 was already in use.
端口已经被其他进程占用:
-
查找占用端口(port)的进程
shellsudo lsof -i :<port>
-
停止占用端口的进程:找到占用端口 8080 的进程 ID(PID)
shellsudo kill -9 <PID>
-
重启应用
前端部署
方法流程
-
npm构建静态文件
shellnpm install npm run build
-
将静态文件放在Nginx目录下(在主页运行)
shellcd sudo cp -r WorkSpace/{{fileName}}/dist/ /usr/share/nginx/WorkSpace/{{fileName}}/
-
配置Nginx服务
shellsudo vim /etc/nginx/sites-available/default
jsserver { listen 81; server_name _; location / { root /usr/share/nginx/WorkSpace/chao-xing-front-end/dist; index index.html index.htm index.nginx-debian.html; } }
shellnginx -t sudo service nginx restart
-
更改文件夹权限使Nginx可以访问
shellsudo chown -R www-data:www-data /usr/share/nginx/WorkSpace/{{fileName}}/dist/ sudo chmod -R 755 /usr/share/nginx/WorkSpace/{{fileName}}/dist/
遇到的问题
defult文件默认内容:
js
server {
listen 80 default_server;
listen [::]:80 default_server;
root /var/www/html;
index index.html index.htm index.nginx-debian.html;
server_name _;
location / {
try_files $uri $uri/ =404;
}
}
已经正确配置了 Nginx 并且使用了上面的配置片段,但仍然无法打开 Vue 项目
服务器防火墙没打开前端端口
后端在公网ip为 42.193.xxx.xxx/ 的服务器上启动,为什么仍然 GET 42.193.xxx.xxx:8080/student/rad... net::ERR_CONNECTION_TIMED_OUT
- 端口没开放
- 没启动后端