前言
作为程序猿,linux 是始终绕不开的东西,其实服务器买好很久了,就一直没搞起来,这次就记录一下我的第一个服务器
服务器也是从 0 开始搭建的,然后一开始给朋友练手安装软件了(没用宝塔,全手动安装)后面也都会提到安装的过程
安装软件
前端需要运行项目其实要的东西不多,nginx
、nodejs
、git
。就够玩的了
git 安装
git 安装其实特别简单,因为用的是centos
的服务器,所以直接 yum install git
就完事了,没太多花里胡哨的东西
nginx 安装
可以看下以前的博客链接,个人觉得写的很详细了
建立软连接,让全局都可以使用 nginx
命令
ln -s /usr/local/nginx/sbin/nginx /usr/local/bin
nodejs
有了上面的基础,安装 nodejs 也就很简单了
首先 进入 /usr/local
目录,最后我们把 node 安装到这个目录中
下载(wget 就是下载命令,下载网络链接的内容)
# 下载
wget https://nodejs.org/dist/v14.16.0/node-v14.16.0-linux-x64.tar.gz
# 解压
xz -d node-v14.16.0-linux-x64.tar.xz
# 在执行命令解压
tar -xf node-v14.16.0-linux-x64.tar
# 删除压缩包
rm -f node-v14.16.0-linux-x64.tar
# 执行移动操作,其实就是重命名的操作了
mv node-v14.16.0-linux-x64/ /usr/local/nodejs
建立软连接这一步就是想把node
和npm
命令让他们可以全局使用
# 建立软连接
ln -s /usr/local/nodejs/bin/node /usr/local/bin
ln -s /usr/local/nodejs/bin/npm /usr/local/bin
配置 nginx 把博客搭起来
第一步先找到自己博客的文件,找一个安家的地方。所以我把所有的项目都放在了 /data
目录下。
然后就是改 nginx 配置了。这里有个坑值得记录下:
域名二级目录的坑
因为我的博客之前是搭建在码云的服务上的 jioho.gitee.io/blog/。所以打包配置
base: '/blog/'
也是特意改了。意思就是其实我们访问的是jioho.gitee.io/blog/
其实访问的文件夹是根目录(可能有点难理解,不过道理就是这么个道理)。像这种情况的 nginx 配置,就需要用到一个叫做alias
的配置
- nginx 的默认配置
简单的所一说这配置,监听 80 端口,监听的域名就是 localhost(ip 地址),然后第一个 location 匹配模式,就是访问 ip:8080/
匹配上的第一个 /
,就会用 {}
里面的配置
匹配上 /50x.html
的网址,就会跳转到 nginx 默认的 状态值为 500+的一个网页显示了
特别说一下就是 root
,这个是项目的根目录,我的项目入口是在 /data/blog/dist/index.html
。就是说我们访问域名 域名.com/
开始就可以理解资源管理器的目录层级了,所以 root 要配置为 :/data/blog/dist/
。让他进入我们的项目目录中去
然后后面的 index
配置就是说 index 默认查找的入口文件名称了。有些 index 后面可能会跟着 index.php
是一样的道理,就是找默认文件。
server {
listen 80;
server_name localhost;
location / {
root html;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
上面的描述适合一般的项目搭建,由于码云的域名的问题(本该是 /
的,无缘无故多了一个 /blog/
),所以我们还得继续改配置
新增一个 locatiion 修改如下:root
。root 修改为 alias
。配置的是 /blog
。然后使用别名的方式把 域名/blog
映射到项目的根目录去。
location /blog {
alias /data/blog/dist/;
index index.html index.htm;
}
简单说一下 root 和 alias 区别
- root 的处理结果是:root 路径+ location 路径
- alias 的处理结果是:使用 alias 路径替换 location 路径
- 使用 alias 时,目录名后面一定要加"/"。
- alias 在使用正则匹配时,必须捕捉要匹配的内容并在指定的内容处使用。
- alias 只能位于 location 块中。(root 可以不放在 location 中)
除了 alias ,还有另外一个方法,就是代理(proxy_pass
),配置如下:
location /blog/ {
proxy_pass http://blog.jioho.cn/;
}
nginx 配置 404 页面
其次一个就是 404 页面,因为我用的是 vuepress-theme-reco 这个主题框架,所以 404 是有一个寻人启事的友情链接,比如你随便访问一个我的域名下不存在的网址 jioho.gitee.io/blog/bucunzaidewanzhi.html 就是一个 404 界面这个 404 呢,也是要指向我们的 index.html,让前端自己处理,而不是用 nginx 默认的 404 界面
404 界面配置也很简单了,就是 404 的时候把页面引到 index.html 去,然后让框架的路由处理就行
error_page 404 /404.html;
location = /404.html {
alias /data/blog/dist/index.html;
}
nginx 配置 https
https 也是现在站点的标配了,免费的 ssl 证书也有,我用的就是阿里云的 阿里云免费 SSL 证书申请方法流程(图文教程)
这时候 nginx 也会作妖一下,不过早在几年前就被我降服了,各种报错都在这篇文章,Linux 下 nginx 配置 ssl 证书实现 https 访问
最后
其实这中间也等了好久,比如买域名啊,服务器备案啊,等等一系列事情,有了自己的服务器之后,以后的产出可能就会更加好玩了!