ubuntu系统将本地的hexo网站使用Git与nginx部署到云服务器

Ubuntu云服务器部署Hexo博客:Git+nginx实践指南
本文详细介绍了如何在Ubuntu系统中,利用Git和nginx将本地的Hexo网站部署到云服务器上。首先购买并设置云服务器,接着安装nginx和git,然后配置Git Hooks以实现自动化上传代码,并通过nginx提供web服务。最后,修改本地Hexo配置,执行`hexo d`即可完成网站部署。

将本地的hexo网站使用Git与nginx部署到云服务器

首先弄个云服务器

本篇默认你已经在本地部署好了hexo网站hexo s预览也毫无问题了,那么下一步就是选择服务器了。国内的快,但是需要备案,很麻烦很费时,国外的访问起来比较慢些慢但是不需要备案而且还可以用来翻墙,但是可能会被封锁掉(墙掉),我买的vultr就被墙掉了,墙掉了就访问不了了,其它都是扯淡了,因为我们搭自己的个人站,稳定性与访问便捷是第一位的,所以还是用国内的哇,本篇用的是百度云服务器,经过实测,腾讯云服务器亦可。

搭建思路

我们要在服务器上装nginx 和 git 这两个软件。nginx是一个高性能的HTTP和反向代理web服务器,他可以提供一个web服务把我们传上去的网站代码,设置好供大家访问。git是用来帮助我们自动化上传我们的hexo网站代码的。有了他俩的帮助咱们只要在本地hexo d 一下,我们的网站就可以在服务器上部署好让大家访问了。

安装软件

  1. 连上服务器:ssh 用户名@服务器ip

注意:从这里开始下面的操作是在服务器上进行的

  1. 更新下软件:
    sudo apt update

          sudo apt upgrade
    
  2. 安装git:

         sudo apt-get install git  
    
        git --version (看看安上没)
    
  3. 安装nginx:

         sudo apt-get install nginx    
    
          nginx -v   (看看安上没)
    
  4. 安装vim:

### 使用 Git 登录 Nginx 服务器并更新部署代码 #### 准备工作 为了确保能够顺利地使用 Git 登录 Nginx 服务器并更新部署代码,需确认已在本地配置好 Node.js 和 Hexo,并能通过 `localhost:4000` 访问网站。此外,还需拥有一台已安装 Git云服务器[^5]。 #### 连接至服务器 要连接到远程服务器,可使用 SSH 命令: ```bash ssh 用户名@服务器IP ``` 此命令允许用户安全地登录到远程机器上执行后续操作[^2]。 #### 安装必要的软件包 一旦成功登录到服务器,则需要确保安装了最新的 Git 版本以及 Nginx。对于基于 Debian 或 Ubuntu系统来说,可以运行如下命令来安装这些工具: ```bash sudo apt-get update && sudo apt-get install -y nginx git ``` 而对于 CentOS 或其他 Red Hat 衍生发行版而言,则应采用 YUM 来代替 APT: ```bash sudo yum install -y nginx git ``` 这一步骤保证了环境中有可用的 Web 服务器和版本控制系统用于支持站点发布流程[^1]。 #### 设置项目目录结构 进入服务器根目录 `/` 并创建一个新的文件夹作为存放项目的空间: ```bash cd / mkdir www cd www ``` 接着,在该位置克隆 GitHub 上托管的目标仓库(假设这里是指 beauty-resume2020),以便将其内容同步到服务器端: ```bash git clone https://github.com/BlackCodingCat/beauty-resume2020.git ``` 此时,整个静态网页资源已经被复制到了指定路径下,准备就绪等待进一步处理[^3]。 #### 自动化部署过程 为了让每次推送都能触发自动化的重新加载机制,可以在 `.git/hooks/post-receive` 文件内编写一段简单的脚本来实现这一目标: ```bash #!/bin/bash GIT_REPO=/www/beauty-resume2020 # 替换成实际的工作区路径 PUBLIC_WWW=/var/www/html # 修改成你希望放置公开HTML的地方 BRANCH=main # 如果不是默认分支,请更改此处名称 while read oldrev newrev refname; do BRANCH_NAME=$(echo $refname | cut -d '/' -f3) if [ "$BRANCH_NAME" == "$BRANCH" ]; then echo "Branch $BRANCH_NAME detected. Deploying..." cd $GIT_REPO || exit git checkout main git pull origin main rm -rf public/ hexo generate --deploy # 构建新页面并将它们推送到远端主机上的相应位置 cp -Rf ./public/* $PUBLIC_WWW/ systemctl restart nginx.service # 刷新Nginx服务使最新改动生效 fi done ``` 这段 Shell 脚本会在检测到来自特定分支的新提交时,先拉取最新的变更记录,随后清理旧有缓存、构建新的 HTML 页面并通过 Hexo 插件上传至设定好的 FTP/SFTP 地址;最后重启 Nginx 实现无缝切换。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值