如何选择合适的框架
在个人博客部署上我已经走过来很多的坑 , 合理的框架绝对是你需要首先的选择,对于我来讲博客于我更像是一个记录个人知识的**“云端”**.
我个人推荐部署静态博客,主要是维护成本低 , 方便又快捷 , 静态博客在构建时会将所有页面生成为 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
| yum install nginx
mkdir -p /data/hexo
rpm -ql nginx
cd /etc/nginx vim 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;
keepalive_timeout 65;
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环境配置