打包部署问题

hexo 官网:hexo 官方网站

已下是部署前后端分离项目时,需要注意的一些点。

1.修改 mysql 数据库的用户名和密码

一般本地测试的mysql数据库与服务器数据库的账号密码不一样,所以在发布时需要修改一下。

2.修改 redis 密码

一般本地redis没有密码,而服务器的redis需要设置密码。

3.修改端口

自己测试可能端口是默认的8080,但放服务器上可能有冲突。

4.修改图片存储路径

一般存放路径为绝对路径,本地如果是windows系统,而服务器是linux系统,则上传图片时会报错。

5.在服务器运行 jar 包

先 cd 到 jar 包的存放路径。如 cd /www/wwwroot/

然后运行nohup java -jar myblog.jar >log/myblog.log 2>&1 &

再运行 nginx.
/www/server/nginx/sbin/nginx -c /www/server/nginx/conf/nginx.conf

记得查看/www/server/nginx/conf/nginx.conf内的root根目录,看看 dist 目录放到哪里

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
user  www;

worker_processes auto;

error_log /www/wwwlogs/nginx_error.log crit;

pid /www/server/nginx/logs/nginx.pid;

worker_rlimit_nofile 51200;



events

{

use epoll;

worker_connections 51200;

multi_accept on;

}

http {

include mime.types;

default_type application/octet-stream;

sendfile on;

keepalive_timeout 65;

client_max_body_size 100m;





#用于tomcat反向代理,解决nginx 504错误

proxy_connect_timeout 7200; #单位秒

proxy_send_timeout 7200; #单位秒

proxy_read_timeout 7200; #单位秒

proxy_buffer_size 16k;

proxy_buffers 4 64k;

proxy_busy_buffers_size 128k;

proxy_temp_file_write_size 128k;

# ps:以timeout结尾配置项时间要配置大点



server{
listen 443 ssl;
server_name ygapi.asia www.ygapi.asia;
add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload";
ssl on;
ssl_certificate /www/server/panel/vhost/cert/ygapi.asia/ygapi.asia_bundle.pem;
ssl_certificate_key /www/server/panel/vhost/cert/ygapi.asia/ygapi.asia.key;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;

location / {

root /home/dist;

try_files $uri $uri/ /index.html;

index index.html index.htm;

}

location /prod-api/ {

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;

proxy_pass http://localhost:8080/;

}



error_page 500 502 503 504 /50x.html;

location = /50x.html {
root html;
}
}

server {
listen 80;
server_name ygapi.asia www.ygapi.asia;

location / {
root /home/dist;
proxy_redirect https:// http://;
return 301 https://www.ygapi.asia;

}
}

}

查看 nginx 进程

ss -ntlp | grep nginx

干掉所有 nginx 进程

killall nginx


hexo 初始使用

以下是 hexo 的入门使用。

1.安装 hexo

npm install -g hexo-cli

2.初始化 hexo

创建一个文件夹,我这里命名为 blog,进入该文件夹,右键 git bash。

1
hexo init

3.运行 hexo

1
hexo s

运行上述命令后,会有如下提示:

1
2
3
INFO  Validating config
INFO Start processing
INFO Hexo is running at http://localhost:4000/ . Press Ctrl+C to stop.

这里的链接是博客地址,ctrl+c 会终止程序运行。

4.新建博客

1
hexo n "我的第一个博客"

运行之后,会在 /blog/source/_posts/文件夹下创建一个”我的第一篇博客.md”文件。

5.编辑博客内容

格式为 markdown 的内容,根据自己的情况编写。

6.生成预览

1
2
3
hexo clean
hexo g
hexo s

上面代码分别输入,分别代表清理博客-生成博客-预览博客

附上 hexo 常用命令——戳我进入


2023-03-14 20:42 补充

7.使用图片

想要在博客上放图片,就得用 markdown 语法的 ![]() ,其中图片的存放路径是一个不可忽视的问题。

  • 更改配置

这里我先更改一下 config.yml文件的配置:

1
post_asset_folder: true

当该配置被应用后,使用 hexo new 命令创建新文章时,会生成相同名字的文件夹,也就是文章资源文件夹。

由于项目会生成新的文件目录,同时会解析 Markdown 中的图片路径,会导致一个问题。
如在一个文件目录下,博客名为 1.md,相应的存在一个 1 文件夹存放图片 image.jpg。
在 Typora 编辑器中,普通的 md 文件使用![](1/image.jpg)能在编辑器中正常显示图片。
在 hexo 中,按理说应该是使用![](image.jpg),但网页中却无法正常显示。
此时应该使用这样的方式来引入图片:{% asset_img image.jpg 这是一张图片 %}

虽然可以正常引用图片了,但是这种引用图片的方式只有一句话能形容,wtf。

  • 使用图片插件

插件 hexo-renderer-marked 解决了这个问题。用如下命令安装:

1
npm install hexo-renderer-marked

之后在config.yml中更改配置:

1
2
3
4
post_asset_folder: true
marked:
prependRoot: true
postAsset: true

上面的 post_asset_folder: true 已经改过,所以只需要修改(添加)下面的 marked 就行了。

__END__