hexo、nginx服务器配置

###安装hexo
#预备工作
sudo apt update
sudo apt install nodejs npm git
#安装 Hexo
sudo npm install -g hexo-cli
#初始化博客(your-blog-name替换为博客名)
hexo init your-blog-name
cd your-blog-name
npm install
#生成静态文件:
hexo generate
#启动hexo服务器,比如进入your-blog-name主目录
hexo server

###安装nginx
sudo apt install nginx
#通过安全组已经命令行开放nginx端口
sudo ufw allow ‘Nginx HTTP’
sudo ufw allow ‘Nginx HTTPS’

###配置 Nginx
#在Hexo项目目录(如上述your-blog-name)中,运行hexo g命令来生成静态文件,这些文件放在public文件夹
hexo g

###hexo服务通过nginx实现

#方法一,将hexo博客public文件夹中的内容复制到Web服务器的根目录中,默认为/var/www/html
cp /home/xxx/your-blog-name/public/* /var/www/html/

#方法二,将hexo博客生成的index.html文件的目录设置为网页根目录
#进入博客的source/_posts目录‌是默认的文章存放目录,但不能直接导入,必须转换成静态网页
cd /home/xxx/your-blog-name/source/_posts
#新建XX.md的markdown文件,并编辑内容保存
touch XX.md

micro XX.md
#生成静态文件,先进入博客目录
cd cd /home/xxx/your-blog-name
hexo g
#静态网页将保存在/home/xxx/your-blog-name/public文件夹
#nginx修改网页根目录配置,修改/etc/nginx/sites-available/default,打开该文件删除所有内容,根据最下面的server注释模块进行编辑

1
2
3
4
5
6
7
8
9
10
server {
Listen 80;
listen [::]:80;
server_name 域名服务器; #域名服务器可以替换为域名或者服务器IP
root /home/xxx/your-blog-name/public; # 指定当前网页根目录
Index index.html;
Location {
Try_files $uri $uri/ =404;
}
}

#更改文件夹权限否则不能访问,根据/etc/nginx/nginx.conf文件的第一行显示www-data为用户,为该用户赋予权限
sudo chown -R www-data:www-data /home/xxx/your-blog-name/public #将所有者更改为 www-data
sudo chmod -R 755 /home/xxx/your-blog-name/public #设置读取和执行权限
#必须注意如果新的根目录位于/home/ubuntu用户文件夹下,如果上述权限不行还必须把这个文件夹权限赋予www-data,为了方便把整个权限放开,比如
sudo chown -R www-data:www-data /home
sudo chmod -R 755 /home
#如果还有问题,检查/etc/nginx目录下面配置文件的访问权限,并按照以上方法操作
#检查文件配置
sudo nginx -t
#重新加载 Nginx
sudo systemctl reload nginx
#如果还出现错误查看日志
cd /var/log/nginx/

#方法三,使用端口代理,将nginx的80端口配置代理Hexo的4000端口

micro /etc/nginx/sites-available/default

#清除文件原有内容,更改文件内容如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

server {
listen 80;
server_name your_domain.com; # 替换为你的域名或服务器的IP地址
#root /var/www/html; #这行必须注释掉
location / {
proxy_pass http://localhost:4000; # Hexo服务器监听的端口
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}

# 可选:配置日志和其他设置
access_log /var/log/nginx/hexo.access.log;
error_log /var/log/nginx/hexo.error.log;
}

#要特别注意,采用方法三必须在博客主目录运行hexo server,nginx才能代理成功


hexo、nginx服务器配置
http://example.com/2025/03/21/hexo、nginx服务器配置/
Author
John Doe
Posted on
March 21, 2025
Licensed under