经过对博客网站个性化的修改,现在开始对博客开始部署,前端采用nginx部署,并采用反向代理访问后端,后端采用jar包部署。
后端部署
因为redis和MySQL已经部署在服务器当中,现在直接进行后端的部署。
部署流程:
1.使用Maven打包,使用idea自带的进行打包(点击package),也可采用mvn package命令进行打包。
2.将生成的jar包上传到服务器
3.启动后端
nohup java -jar blog-api-0.0.1.jar >jarLog.txt &
nohup 使其在用户注销后继续运行的命令。nohup 命令的名称来源于 "no hang up",意为 "不挂起"。
java -jar blog-api-0.0.1.jar 是用来启动一个 Java 应用程序的命令。
> 是一个重定向操作符,它将命令的标准输出(stdout)重定向到后面指定的文件中。在这个例子中,它将 java -jar blog-api-0.0.1.jar 命令的输出重定向到 jarLog.txt 文件中。
& 是一个后台执行操作符,它允许命令在后台运行,即使终端关闭也不会影响程序的执行。
查看日志,启动成功!
注意:要修改配置文件为服务器ip
下面总结一下遇到的问题
问题总结:
1.版本问题
原因:lombok的版本和jdk的版本不一致,所以导致了lombok中访问不到想要访问的jdk中的类,可能这个类在新版的jdk中已经移除或者是更改了包名称等,导致lombok不能访问。
解决方法:
修改项目结构为java1.8
修改设置->Maven->importing的JDK
2.测试问题
原因:未通过单元测试,因为修改了配置文件
解决方法:
将单元测试内文件删除即可
前端打包
前端采用nginx部署,并使用docker安装nginx
docker安装nginx
1.准备
创建文件映射目录
#conf存放配置文件,html存放前端项目,logs打印日志
mkdir -p /usr/local/nginx/conf
mkdir -p /usr/local/nginx/html
mkdir -p /usr/local/nginx/logs
2.启动nginx容器
docker run -d \
-p 80:80 \
-p 443:443 \
--name nginx \
--restart=always \
--network-alias nginx \
-e TZ="Asia/Shanghai" \
-v /usr/local/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /usr/local/nginx/conf/conf.d:/etc/nginx/conf.d \
-v /usr/local/nginx/logs/nginx:/var/log/nginx \
-v /usr/local/nginx/html:/usr/share/nginx/html \
-v /usr/local/nginx/cert:/etc/nginx/cert \
nginx
3.访问ip+端口成功
部署前端
1.打包前端
首先修改前端的请求配置文件cms的request.js,view的axios.js,修改为服务器的地址
npm run build
本项目采用在一个server配置多个项目(共用一个端口)
因此需要调整cms项目的vue.config.js文件的publicPath属性值
publicPath: '/admin/'
2.上传服务器
上传到nginx的html文件夹下
3.修改nginx.conf文件
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log notice;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
include /etc/nginx/conf.d/*.conf;
server {
listen 80;
server_name 服务器ip或域名; # !!! 换成自己的ip
#charset koi8-r;
#access_log logs/host.access.log main;
location / { ## 博客前端项目
root /usr/share/nginx/html/dist; # 重要!!! 配置docker容器中的路径
index index.html index.htm;
try_files $uri $uri/ /index.html;
}
location /admin/ { ## 管理前端项目
alias /usr/share/nginx/html/dist_cms/; # 重要!!! 配置docker容器中的路径
index index.html index.htm;
try_files $uri $uri/ /admin/index.html;
}
location /api/{
proxy_pass http://服务器ip/; ## 重要!!!proxy_pass 需要设置为后端项目所在服务器的 IP
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;
}
location /admin-api/{
proxy_pass http://服务器ip/admin/; ## 重要!!!proxy_pass 需要设置为后端项目所在服务器的 IP
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;
}
}
}
访问网站:leetntdot.cn/为博客网站 leetntdot.cn/admin为管理网站