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秘钥和树莓派建立连接

SSH秘钥连接到服务器

2. 配置public推送

由于树莓派性能不强劲,所以采用在本机用hexo生成public文件夹。用git提交生成好的public文件夹到树莓派。具体提交方法采用hexo的hexo-deployer-git插件。

$ cd myblog
$ vim _config.yml

将deploy配置下的repo参数改为刚刚在树莓派上新建的.myblog路径。

每次维护完项目后输入: hexo d 即可完成推送。

大功告成!!!

最后附上成果图:

posted @   Haikez  阅读(562)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示