Nginx服务器搭建与个人博客部署


前言

2022.11.04:个人网站已经上线了,部署在github,但是绑定了自己的域名
网站:www.mengki.xyz
阿里云的新人免费就不要想挂域名了,无法备案的,用不了,只能指向国外的服务器,不过新人域名还是可以搞的,1块钱一年还是很香的。

换源: https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu

如果你安装的过程中出现无法定位软件包的问题,或者下不动,可以考虑换源。

其他换源教程:https://blog.csdn.net/qq_43029747/article/details/94874442

上次搞了一个树莓派,相当于有了自己的服务器。大家应该也想着部署些什么东西上去吧。这次带来我关于服务器以及个人博客搭建的分享。Ps:虽然有了一个树莓派,但是没有温控风扇只能一直转,又吵又费电,有能力的可以自己DIY一个温控单元。加上我还在学校,经常有断网断电的现象,重启后还需要进行相关配置,所以我现在搞了一个阿里云的服务器,免费1个月,可以先用着。服务器及博客配置:nginx+hexo静态博客

关于服务器,我个人理解就是部署在你本地的机器(云服务器就是在云端机器)上面的平台,负责处理网页的请求和相应,相当于本机和网络的桥梁,我们在这个平台上面搭建自己的web程序。

关于博客:网页页面分2种:动态页面和静态页面。静态页面比较简单,直接是浏览器能够读取的文本形式,如html等,有人访问的时候直接把html丢过去就行了,比较快速,缺点是管理比较麻烦,每次更新都相当于重写整个页面的代码,没有相关框架的话工程量比较大。动态页面涉及到数据库的操作,代码也是更为上层的形式,所有元素都是从库中调用的关系,有访问的时候需要在服务器先编译,把库中的内容联系起来生成浏览器可以访问的形式,再进行发送。反应比静态的慢(对于有限带宽、处理器内存也不行的话更是如此),但是适合管理和大型工程。个人博客比较简单,静态页面也有快速响应、保密性好的特点。所以个人博客大多数是静态的。如果从头开始编写html之类的代码,对于外行人属实是折磨。所以我们一般使用静态博客的框架,相当于帮助我们快速完成html等相关代码的编写,我们只需要专注于博客设计和文章就好了,你可能觉得这样博客会显的比较单调或者不能独树一帜。我当时也有这种想法,不过现在我可以说不用担心,一方面博客框架都有很多的主题可以选择,另一方面主题也会提供很多参数让你自己修改,完全能够满足个人的需求。如果你说我就想要一个前无古人后无来者的风格,你或许可以考虑自己写一个或者使用动态博客。静态博客框架有很多,我这里使用的hexo。

一、web服务器:Nginx搭建

首先,下载nginx:sudo apt install nginx
查看版本:nginx -v
下载完成后,输入nginx就可以运行(大家都是这么说)。然而如果你出现了fail to listen 80端口的情况,一般来说都是你的nginx已经在运行了。可以先关闭:

nginx -s stop

在这里插入图片描述
再启动,就ok了

此时在网页输入你的ip(树莓派就是树莓派的ip,前提是在和你树莓派在同一网络的设备的浏览器上输入,当然如果你有公网ip(云服务器就自带)就都行。),能看到下面的欢迎页面就ok
在这里插入图片描述
Nginx重启:nginx -s reload
其他Nginx教程:大佬nginx学习教程

二、博客搭建

由于使用静态博客框架,所以博客框架不一定要放在服务器上,比如我在我的电脑上使用博客框架,对主题进行调教,写文章,等等。等我感觉差不多了,再生成静态的文本代码等等文件,把这些文件放到服务器上,就相当于把我设计的网站部署在服务器上了。这就是静态网页的好处,设计和部署可以分开,只要把框架生成好的现成的html等等代码放到服务器上,别人就可以正常访问。当然前提是你有web平台(如nginx)。综上,我建议在自己电脑上写博客,再进行部署,能少折腾一点服务器。

博客框架有很多,我这里使用的是Hexo框架,官网:https://hexo.io/zh-cn/docs/

我的电脑是windows,下面的教程也是在windows上的。

其实官网已经写的十分详细了,照着来应该不会有问题。我说说主要的操作。

首先,这个框架需要Node.js,需要提前下载:https://nodejs.org/en/,至于git是否需要我感觉目前还不用,如果你要讲博客部署在github或者要实现同步更新,可以安装git。有树莓派或者云服务器可以先不用,部署什么的先简单的上传文件就好了,可以后面再说。

下好之后安装,之后打开cmd看看有没有成功
在这里插入图片描述
说明安装成功了,如果显示不是外部或内部指令啥的,需要修改一下全局变量。

参考配置全局变量:https://blog.csdn.net/zsx0806/article/details/121891980

创建一个文件夹用来放hexo以及管理你的博客,之后就可以安装hexo了,cd到你刚刚创建好的文件夹,使用npm命令:npm install -g hexo-cli
进行下载,使用hexo -v查看下载的版本,使用

hexo init
npm install

进行安装,必须新建空文件夹,否则
在这里插入图片描述
完整运行后,应该是这样的
在这里插入图片描述
此时这个ttest文件夹就是你Hexo框架的文件夹了。关于其中的文件目录可以上官网看。

如果你输入hexo显示不是外部或内部指令啥的,同样需要修改一下全局变量,将hexo的文件加入,放上我个人的环境变量目录:
在这里插入图片描述

Ok之后,使用cmd在你的Hexo框架的文件夹(如上面的ttest)目录下输入

hexo g
hexo s

打开命令行中提示网址,我这里使用了主题,所以输出和白板hexo情况下不太一样

在这里插入图片描述
关于Hexo的文件目录,有几个比较重要:

  • public:存放生成的页面,要运行生成页面的指令后才出现这个文件夹,部署的话就将这个文件夹下的所有文件放到服务器的nginx的根目录下面就ok了(后面还会说)
  • scaffolds:生成文章的一些模板
  • source:用来存放你的文章,Hexo按照你的文章内容生成html文件。
  • themes:主题,选择一个好看的主题也是一大乐趣。
  • _config.yml: 博客的配置文件,用来更好的调教你的博客,可以修改配置进行自定义个性化。具体什么是什么可以看官网,非常详细。

主题:hexo官网也提供很多主题,我使用的是Fluid,当时也是在网上逛的时候看到的,使用下来感觉非常不错,安利一下,感谢大佬们的开源。
知乎介绍:https://zhuanlan.zhihu.com/p/137679728
Fluid调教方法(官方手册):https://fluid-dev.github.io/hexo-fluid-docs/guide
在这里插入图片描述
官方文档写的也是非常详细,从安装到调教都有了,大家可以自行食用。
个人调教的结果:
在这里插入图片描述
在这里插入图片描述
Ps:目前博客已经部署在阿里云服务器上了,之前都是部署在我的树莓派上,后来受不了吵闹和频繁的断电断网。但是域名没有搞定,说是阿里云免费的服务器是按量的不能备案,我真的3Q。没办法又不能暴露公网IP,大家就先稍等吧。

最常用的Hexo指令,我称之为一条龙服务:

hexo clean
hexo g
hexo s 

分别是:清空,生成,开服务,其中hexo g这个指令很重要,它可以将你写的md文件按照你选择的主题生成静态网页文件,放在public文件夹中。

其他Hexo教程:https://zhuanlan.zhihu.com/p/44213627

三、部署在服务器

重点来了,谁能想到,这是我消耗时间最多的部分。希望我能够帮助大家少走弯路。

当你把博客调教好后,首先,重新生成一遍防止BUG,之后将public文件夹下的所有文件拷贝,上传到你的服务器的文件夹下(建议在服务器上也新建一个文件夹用来放)。树莓派可以使用VNC传输文件,云服务器没有桌面可以用Xshell的rz指令。完成之后,启动nginx,访问ip,你会发现还是nginx的欢迎页面,因为nginx的相关配置没有改,需要操作一下。

重点来了,修改nginx配置,我看了极多帖子,都是说修改nginx.conf文件,这样的页面
在这里插入图片描述
大多数帖子是2020年的,我不知道现在还能不能行,反正我的文件中压根就没有location这块,更别提什么root了。于是我猜测是导入了其他的配置文件了,我一个一个的翻,终于找到能够生效的改root根目录的地方(使用Linux系统的情况下)。

/etc/nginx/sites-enabled,在这个目录中有一个default文件,打开之后才是大家所说的,你会在这里看到一个root
在这里插入图片描述把后面的目录改成指向你服务器上放hexo生成的静态文件的那个文件夹。然后保存重启nginx,不出意外,就成功了。

四、内网穿透

博客搞好了,只能在局域网里看多没意思,我们要让公网也能访问,一种方法,搞一个公网ip和域名(云服务器),还有用内网穿透。

内网穿透具体就是让有公网访问能力的人转接你服务器的访问任务,当有人访问你的网址(通常是提供内网穿透的平台给你分配的公网可以访问的网址)时,提供内网穿透的平台会将这个来自公网的请求发送给你的局域网(前提你这个局域网要联网),再发送到你的服务器上,放回也是一样的,先返回给平台,再返回给用户,从而实现公网访问。

树莓派上实现内网穿透的有很多,我用了2个分享给大家。

1. sunny内网穿透:https://www.ngrok.cc/

这个可以自定义域名,好像需要实名认证,还有花2块钱购买一个最低等级的隧道,之后就可以配置了。
在这里插入图片描述
启动的话,需要下载相关软件,官网有教程
在这里插入图片描述
树莓派注意下载ARM版本的
在这里插入图片描述
下载之后放在服务器上,cd到存放你刚刚下载的sunny文件的路径上,输入

./sunny clientid 隧道id

其中隧道id就是上面注册时分配给你的。
成功的话,你就可以在公网通过你的网址进行访问了。不过有时候连不上,只能说不稳定,而且响应比较慢。

2. cpolar: https://dashboard.cpolar.com/login

不能自定义域名,稳定性比上一个好。
在这里插入图片描述
同样,下载ARM的cpolar文件,按照教程来就ok,nginx的端口一般是80。成功的话会在命令行里显示分配给你的网址,同样可以公网访问了。速度当然也慢。

  • 5
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值