起因

由于家里出现过几次偶发性断电导致NAS闪断重启,然后急急忙忙地跟家里人商量着要买个UPS顶上防止数据丢失,加上本身就是DDNS+域名提供一些服务,恰逢腾讯云搞新春活动,就干脆租了一个国内的轻量应用服务器作为替代。

配置

CPU: 4核 (原本是2核, 后来免费升级)
内存: 4G
硬盘:8G SSD + 500G "高性能"云硬盘 (为网盘多加的)
带宽: 8Mbps
流量: 1200G/月

个人博客

一开始在选择博客平台的时候,了解到了很多,最终选择了hexo,没有别的原因,白嫖github pages,完全免费。但是这种免费往往是有代价的,也就是学习成本和维护麻烦,再加上github访问困难,后来想想索性就把博客换成typecho,带web后台管理,也能简单实现评论功能,方便管理。

图床

博客里的图片虽然都改成了本地相对引用脱离了NAS公网访问,但同样因为github访问不稳定导致不稳定。既然都上了云服务器,干脆做个个人图床。

Seafile同步网盘

原本在NAS上用Docker容器在跑的Seafile网盘也顺便搬到服务器上,只用来同步部分工作文件,软件资源等等,方便随时调用

记录

应用环境
Nginx
sudo apt install nginx
# 查看版本
nginx -v
Mariadb
sudo apt install mariadb-server
sudo systemctl status mariadb
sudo systemctl enable mariadb
PHP
# 获取sury.org的gpg key
sudo wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
# 添加PHP仓库
sudo echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | tee /etc/apt/sources.list.d/php.list
# 安装相关扩展
sudo apt install php7.4-{fpm,curl,gd,imagick,mbstring,mysql,zip}
# 查看版本
php -v

修改 /etc/php/7.4/fpm/php.ini

;;;;;;;;;;;;;;;;;;;;;;
; Dynamic Extensions ;
;;;;;;;;;;;;;;;;;;;;;;

extension=curl
extension=mbstring
extension=mysqli
extension=pdo_mysql
JAVA
sudo apt install default-jdk
# 查看版本
java -version
Elasticsearch
# 导入gpg key
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo gpg --dearmor -o /usr/share/keyrings/elasticsearch-keyring.gpg
# 添加v7.x软件源列表
sudo echo "deb [signed-by=/usr/share/keyrings/elasticsearch-keyring.gpg] https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elastic-7.x.list
# 安装apt-transport-https
sudo apt-get install apt-transport-https
# 安装
sudo apt-get update && sudo apt-get install elasticsearch

配置

# 1. /etc/elasticsearch/elasticsearch.yml

## 数据存放路径
path.data: /data/elasticsearch-data

## 其他相关参数
bootstrap.memory_lock: true
discovery.type: single-node
xpack.security.enabled: true


# 2. /etc/elasticsearch/jvm.options.d/xxx.options
## 添加内存占用限制
-Xms256m
-Xmx256m


# 3. /etc/elasticsearch/log4j2.properties
Zerotier
curl -s https://install.zerotier.com/ | sudo bash

配置moon节点

cd /var/lib/zerotier-one
sudo zerotier-idtool initmoon identity.public > moon.json

记住 moon.json里的id,一般为000000xxx.moon

stableEndpoints后面的IP和端口改为当前服务器的固定公网IP和所用端口,默认端口为9993

# 根据 moon.json 生成 网络ID.moon
sudo zerotier-idtool genmoon moon.json
# 放入指定位置
sudo mkdir moons.d
sudo mv 000000xxxxxxxxxx.moon ./moons.d
# 重启zerotier
systemctl restart zerotier-one
常用指令
tar
# 只归档不压缩可去掉 -z
# 打包并压缩成zip
tar -czf filename file1 file2 dir1 dir2..
# 解压缩zip
tar -xzf filename -C exdir
# 解压缩zip
unzip filename -d exdir
apt
# 检查更新包
apt update
# 更新软件
apt upgrade
# 安装软件(-y 自动确认)
apt install -y mariadb 
netstat
# 查看所有占用监听的端口程序
netstat -anp
# 利用grep筛选
netsta -anp | grep mariadb
# 加上-t或-u查询tcp或udp
netstat -antp或-anup
systemctl
# 启动/停止/重启/启用(开机启动)/禁用(关闭开机启动)服务
systemctl start/stop/restart/enable/disable mariadb
硬盘/分区/挂载
# 查看当前挂载点情况(-T 显示文件系统; -h 容量显示转换为M,G,T,P格式)
df -Th
# 查看物理硬盘以及分区信息
fdisk -l
# 格式化硬盘或分区为ext4文件系统
mkfs -t ext4 /dev/vdb1
# 硬盘分区
fdisk /dev/vdb
## fdisk后续按不同按钮实现不同功能
d 删除分区
l 列出已知分区类型
n 添加分区
p 列出分区表
q 不保存退出
t 修改分区类型
w 写入分区表(保存)并退出
# 挂载分区到指定路径(e.g /dev/vdb1分区挂载到/data)
mount /dev/vdb1 /data
# 查看分区UUID
blkid
ls -l /dev/disk/by-uuid
# fstab添加信息实现开机自动挂载
UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx /data /ext4 defaults 0 0
Nginx
# 测试配置文件
nginx -t
# 重载配置并重启
nginx -s reload

php-fpm(fastcgi)

# 调用php-fpm处理.php文件
location ~* \.php$  {
    include snippets/fastcgi-php.conf;
    fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
    fastcgi_param   SCRIPT_FILENAME    $document_root$fastcgi_script_name;
    fastcgi_param   SCRIPT_NAME        $fastcgi_script_name;
}
Zerotier

加入指定ID的网络

zerotier-cli join 网络ID

客户端添加Moon节点

zerotier-cli orbit <World ID> <seed>

客户端退出Moon节点

zerotier-cli orbit <World ID>
最后修改:2024 年 01 月 02 日
个人分享,随意打赏