服务器
首先得买服务器和域名。自行购置,我用的是腾讯云的 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 连接远程服务器的过程是这样的:
- 用户服务器发起登录请求:ssh user@IP
- 服务器收到用户的登录请求,把自己的公钥发给用户
- 用户使用这个公钥,将登录密码加密后,发送回远程主机
- 服务器用自己的私钥,解密登录密码,如果密码正确,就同意用户登录
假设你已经买了一台 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
上设置快捷登录服务器,步骤参考:
- 打开
iterm2 -> preferences -> Profiles
,或者快捷键command + ,
- 点击左侧列表下的 + 号,新建一个 Profile
- 右边配置相关信息,主要是配置 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 数据收集代码