如何选择合适的框架

在个人博客部署上我已经走过来很多的坑 , 合理的框架绝对是你需要首先的选择,对于我来讲博客于我更像是一个记录个人知识的**“云端”**.

我个人推荐部署静态博客,主要是维护成本低 , 方便又快捷 , 静态博客在构建时会将所有页面生成为 HTML、CSS 和 JavaScript 等静态文件。这些文件无需服务器实时处理,可以直接被浏览器读取和渲染,大大缩短了页面加载时间。相比之下,动态博客需要在每次用户请求时,由服务器从数据库中读取数据、渲染页面,这一过程相对耗时。在安全性上静态博客不涉及服务器端脚本语言(如 PHP、Python 的 Flask 等)和数据库交互,减少了诸如 SQL 注入、跨站脚本攻击(XSS)等常见的安全漏洞风险。没有动态脚本的执行,黑客难以找到可利用的漏洞来篡改数据或获取敏感信息。


目前搭建博客的主流框架有 WordPress、VuePress、Hugo、Hexo 等等,WordPress是我在大学课上老师教的, 这东西是真的很简单 ,但问题就是太大了 , 用户请求的时候速度极慢 .

环境准备

安装 Node.js 和 GIt

Node.js 就是跑javascript所需要的环境 , Git 可以当作一个版本控制工具.

1
2
3
C:\Users\wang>node -v
C:\Users\wang>git --version
#版本验证

服务器端准备

我用的是阿里云的ECS服务器 , 采用的是Alibaba Cloud Linux 3.2104 LTS 64位系统.

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
#安装 Nginx
yum install nginx
#创建一个文件用来存放 hexo 的部署文件,记得加-p初始没有
mkdir -p /data/hexo
#然后找到 Nginx 的安装目录
rpm -ql nginx
#修改 nginx 配置文件nginx.conf
cd /etc/nginx
vim nginx.conf
# 进入后,按 i 键进入编辑模式
#替换内容
# 定义运行Nginx服务的用户和用户组(此处用户名为nginx)
user nginx;

# 设置工作进程的数量,auto表示自动设置为CPU核心数
worker_processes auto;

# 错误日志路径与记录级别(notice级别记录常规错误和警告)
error_log /var/log/nginx/error.log notice;

# 主进程PID文件存储路径
pid /var/run/nginx.pid;

# 事件处理模块配置
events {
# 单个工作进程的最大并发连接数(默认1024)
worker_connections 1024;
}

# HTTP核心模块配置
http {
# 包含MIME类型定义文件(如text/html, application/json等)
include /etc/nginx/mime.types;

# 默认MIME类型(当无法识别文件类型时使用二进制流类型)
default_type application/octet-stream;

# 定义日志格式模板(命名为main)
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优化选项(需与sendfile配合使用)
#tcp_nopush on;

# 客户端保持连接的超时时间(单位秒)
keepalive_timeout 65;

# 注释掉的GZIP压缩配置(启用可减少传输体积)
#gzip on;

# 包含其他配置文件(/etc/nginx/conf.d/目录下所有.conf文件)
include /etc/nginx/conf.d/*.conf;
}

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
#进入到/etc/nginx/conf.d文件夹下面,通过vim default.conf打开文件
# HTTPS 重定向服务器块 (监听IPv4/IPv6 80端口)
server {
# 监听 IPv4 的 80 端口(HTTP)
listen 80;
# 监听 IPv6 的 80 端口(HTTP)
listen [::]:80;
# 配置服务器域名(需替换为实际域名,例如 zanewang.online)
server_name 域名;

# 永久重定向所有 HTTP 请求到 HTTPS (301重定向)
rewrite ^(.*)$ https://${server_name}$1 permanent;
}

# HTTPS 主服务器块
server {
# 监听 443 端口并启用 SSL
listen 443 ssl;
# 配置服务器域名(需与证书域名一致)
server_name 域名;

# SSL 证书路径(需替换为实际路径,例如 /ssl/zanewang.pem)
ssl_certificate 存放pem的位置;
# SSL 私钥路径(需替换为实际路径,例如 /ssl/zanewang.key)
ssl_certificate_key 存放key的位置;

# 设置 SSL 会话缓存(1MB 内存缓存约存储4000个会话)
ssl_session_cache shared:SSL:1m;
# SSL 会话超时时间(5分钟)
ssl_session_timeout 5m;

# 指定加密套件:启用高强度加密,禁用不安全的算法
# HIGH: 高强度加密算法
# !aNULL: 禁用匿名DH算法
# !MD5: 禁用MD5哈希算法
ssl_ciphers HIGH:!aNULL:!MD5;
# 优先使用服务器端加密套件配置
ssl_prefer_server_ciphers on;

# 网站根目录配置
location / {
# 透传客户端真实 IP 地址
proxy_set_header X-Real-IP $remote_addr;
# 透传原始 Host 请求头
proxy_set_header Host $http_host;
# 记录请求链路中的代理服务器 IP
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

# 静态文件根目录路径(需替换为实际路径,例如 /data/hexo)
root /data/hexo;
# 默认索引文件
index index.html index.htm;
}

# 自定义错误页面(50x系列错误)
error_page 500 502 503 504 /50x.html;
# 50x错误页面位置配置
location = /50x.html {
# 错误页面存放目录(Nginx默认目录)
root /usr/share/nginx/html;
}
}

启动nginx

Node.js环境配置