Git+Nginx搭建远程Web服务器
Git+Nginx搭建远程Web服务器
一、服务器端配置
1. 创建git文件夹用于存放网站文件
$ cd
$ mkdir .myblog
$ cd .myblog/
$ git init --bare
2. 在服务器选择一个放置网站的目录,假设这个目录为/var/www/myblog
$ mkdir -p /var/www/myblog
$ cd /var/www/
$ git clone ~/.myblog myblog
3. 自动部署
git 有个功能叫做hook,也就是说在我们提交代码的时候会触发一些操作,这就是hook Git的挂钩(Hook)主要包含:
applypatch-msg post-update pre-rebase commit-msg pre-applypatch update post-commit pre-commit post-receive prepare-commit-msg
我们要用到的是post-update这个hook 进入到我们的git服务器的文件夹~/.myblog/hooks 进入到hook文件夹 使用ls命令可以看到许多hook脚本的sample
$ cd ~/.myblog/hooks
$ vim post-update
新建一个post-update脚本 输入以下命令
#!/bin/sh
cd /var/www/myblog
env -i git pull
给新建的post-update赋予权限
$ chmod +x post-update
4..配置nginx
编辑nginx的配置文件/etc/nginx/sites-available
$ sudo vim /etc/nginx/sites-available/default
###### 编辑以下内容:
server {
listen 80 default_server;
listen [::]:80 default_server;
# SSL configuration
#
# listen 443 ssl default_server;
# listen [::]:443 ssl default_server;
#
# Note: You should disable gzip for SSL traffic.
# See: https://bugs.debian.org/773332
#
# Read up on ssl_ciphers to ensure a secure configuration.
# See: https://bugs.debian.org/765782
#
# Self signed certs generated by the ssl-cert package
# Don't use them in a production server!
#
# include snippets/snakeoil.conf;
root /var/www/myblog;
# Add index.php to the list if you are using PHP
index index.html index.htm index.nginx-debian.html;
server_name _;
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ =404;
}
这里主要修改server_name为你的域名 修改root目录为hexo静态文件的目录,以上面目录举例/var/www/myblog要注意nginx需要有该目录的文件读取权限
$ sudo chown -R pi:pi /var/www
重启nginx:
$ sudo nginx -s reload
服务端配置完成!!!
二、客户端配置
1. 通过ssh秘钥和树莓派建立连接
2. 配置public推送
由于树莓派性能不强劲,所以采用在本机用hexo生成public文件夹。用git提交生成好的public文件夹到树莓派。具体提交方法采用hexo的hexo-deployer-git插件。
$ cd myblog
$ vim _config.yml
将deploy配置下的repo参数改为刚刚在树莓派上新建的.myblog路径。
每次维护完项目后输入: hexo d 即可完成推送。
大功告成!!!
最后附上成果图:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?