Skip to main content

服务器

首先得买服务器和域名。自行购置,我用的是腾讯云的 centos7.6 系统的服务器,配置比较简单,个人网站一般 1 核 2g 就够用了

zsh 配置

更改默认 shell 为 zsh,相关配置参考 https://docs.zhouweibin.top/docs/awesome-dev/%E5%89%8D%E7%AB%AF%E7%8E%AF%E5%A2%83/#oh-my-zsh

远程连接

远程连接服务器,可以通过 ssh 连接,或者用第三方可视化工具

ssh 连接远程服务器的过程是这样的:

  1. 用户服务器发起登录请求:ssh user@IP
  2. 服务器收到用户的登录请求,把自己的公钥发给用户
  3. 用户使用这个公钥,将登录密码加密后,发送回远程主机
  4. 服务器用自己的私钥,解密登录密码,如果密码正确,就同意用户登录

假设你已经买了一台 Linux 主机,IP 地址 为 x.x.x.x,用户名为 root (大部分默认为 root),使用以下命令可发起建立 ssh 连接:

ssh root@x.x.x.x
# 会提示输入密码

当然最好是通过 sshKey 实现免密码登录,步骤如下:

brew install ssh-copy-id
# 生成本机密钥/公钥文件
ssh-keygen -t rsa
# 将本机公钥上传到远程服务器上
ssh-copy-id root@x.x.x.x

mac 下可以在 iterm2 上设置快捷登录服务器,步骤参考:

  1. 打开 iterm2 -> preferences -> Profiles,或者快捷键 command + ,
  2. 点击左侧列表下的 + 号,新建一个 Profile
  3. 右边配置相关信息,主要是配置 command,在初始化该窗口时自动执行连接服务器的命令
# Command
ssh root@x.x.x.x

之后只需要右键点击 iterm2 应用图标,就可以快速创建一个连接远程服务器的窗口了

文件传输

可视化工具推荐 FileZilla,或者直接用 ssh

域名

自行在对应的云服务厂商购买就行了。建议是在买服务器的厂商里买,后续绑定也简单一些

二级域名配置

一般会有多个应用,这个时候可以分配不同的二级域名,进入阿里云的域名控制台,解析对应的域名,步骤如下:

  • 记录类型选 A
  • 主机记录填对应的二级域名(比如 docs.zhouweibin.top 对应 docs
  • 记录值填服务器 ip
  • 其他默认就行

https 证书

  • FreeSSL。可以申请免费的证书
  • 腾讯云和阿里云也都可以申请一年期限的免费证书

腾讯云免费证书申请 https://console.cloud.tencent.com/ssl

解析

在域名控制台添加 DNS 解析记录,验证是否生效(按照指引处理解析步骤就行)

nginx

借助 nginx 提供 web 服务

安装

yum install nginx
systemctl start nginx
systemctl enable nginx
# 常用命令
# systemctl restart nginx
# systemctl status nginx
# systemctl stop nginx

修改配置

先找个目录用于部署个人应用,然后修改下 nginx 配置,一般是在 /etc/nginx/nginx.conf

# /etc/nginx/nginx.conf
# ...
# 新增应用
server {
listen 80;
# 注意:如果是用二级域名,需要先在域名控制台解析对应的二级域名
server_name docs.zhouweibin.top;
# 配置好应用的目录
location / {
root /home/docs;
index index.html;
}
}
# https
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name docs.zhouweibin.top;
root /usr/share/nginx/html;
# 注意:密钥需要预先生成并上传,这里不能为空
# 可以在服务器对应云服务商里免费申请和下载ssl证书,之后上传到指定目录即可
ssl_certificate "/etc/ssl/xxx.pem";
ssl_certificate_key "/etc/ssl/xxx.key";
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 10m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;

# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;

location / {
root /home/docs;
index index.html;
# 单应用页面还需要配置这个
# try_files $uri $uri/ /index.html;
}
}
#...

如果没有 ssl 证书,可以先注释掉 https 的配置。接下来先在本地打包,将 build 里的所有文件上传到 nginx 指定目录下,然后重启 nginx 访问尝试下

systemctl restart nginx

OSS 服务

如果经常要上传图片或其他静态资源的话,可以上云厂商买个 oss 服务,不占个人服务器的空间,价格也不贵

搜索引擎相关

站长地图

用于谷歌或百度收录,一般都可以自动生成,比如 Docusaurus(build 自动生成) 和 gatsby (需要引入额外插件);第一次需要指定地图文件上传,之后谷歌或百度都会定期去自动更新站点地图

解析

Docusaurus 可以借助 plugin-google-analytics 插件自动在网页中添加 google 数据收集代码