服务器配置实战指南:从安全加固到Nginx反代部署
服务器配置流程记录,涵盖了从安全设置、Docker安装、Nginx反向代理及SSL证书配置,到Swap空间管理的完整步骤。

· 3 min read
安全性 #
参考VPS基础安全配置实践指南进行配置
安装docker和dockercompose #
安装 Docker #
更新软件包列表 #
sudo apt update
安装必要的软件包 #
安装一些必要的软件包,这些软件包允许 apt
通过 HTTPS 使用仓库。
sudo apt install apt-transport-https ca-certificates curl software-properties-common
添加 Docker 的官方 GPG 密钥 #
添加 Docker 的官方 GPG 密钥,以便验证下载的软件包。
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
添加 Docker 仓库 #
将 Docker 的官方仓库添加到你的 apt
软件源列表中。
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
再次更新软件包列表,以包含新添加的 Docker 仓库。
sudo apt update
安装 Docker Engine #
安装Docker Engine、Docker CLI
和 Containerd
。
sudo apt install docker-ce docker-ce-cli containerd.io
验证 Docker 安装 #
验证 Docker 是否成功安装,并检查 Docker 服务是否正在运行。
sudo systemctl status docker
如果 Docker 服务正在运行,应该看到类似 active (running)
的输出。
也可以运行一个简单的 Docker 镜像来验证 Docker 是否可以正常工作。
sudo docker run hello-world
应该看到一条欢迎消息,表明 Docker 安装成功。
安装 Docker ComposeV2 (可跳过) #
Docker 官方为了简化开发者的安装和使用流程,已经将 Docker Compose V2 作为一个核心插件,并将其包含在标准的 Docker Engine (docker-ce
) 安装包的依赖或推荐列表中。
这意味着,当上面步骤中使用 apt
安装 docker-ce
时,apt
会自动解析这些依赖关系,并将 docker-compose-plugin
一并安装。
到这一步直接使用docker compose version
验证是否安装成功。
下载 Docker Compose 插件 #
从 GitHub Releases 下载 Docker Compose 插件。
sudo apt install docker-compose-plugin
验证 Docker Compose 安装 #
验证 Docker Compose 是否成功安装。
docker compose version
如果 Docker Compose 成功安装,应该看到 Docker Compose 的版本信息。
添加用户到 Docker 用户组 #
默认情况下,只有 root
用户或具有 sudo
权限的用户才能运行 Docker 命令。为了让普通用户也能运行 Docker 命令,你需要将用户添加到 docker
用户组。
sudo usermod -aG docker $USER
运行以下命令来应用用户组更改。
newgrp docker
这样就可以在不使用 sudo
的情况下运行 Docker 命令了。
配置证书和反代 #
下载证书和私钥 #
将在cf中生成的源证书的cert和key复制到.pem和.key文件中
安装 nginx #
sudo apt install nginx
上传证书和私钥到服务器 #
以下操作建议提权为root进行操作和检查
- 使用su,输入root密码提权
su
- 检查
/etc/ssl/certs
和/etc/ssl/private
目录是否存在,并将.pem和.key文件分别传到这两个目录里
sudo mv xxx.com.pem /etc/ssl/certs/
sudo mv xxx.com.key /etc/ssl/private/
- 设置权限
sudo chmod 600 /etc/ssl/private/api.xxx.com.key
配置nginx #
- 创建 Nginx 配置文件
sudo vim /etc/nginx/sites-available/api.xxx.com
- 添加以下配置
server {
listen 80;
server_name api.xxx.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name api.xxx.com;
ssl_certificate /etc/ssl/certs/api.xxx.com.pem;
ssl_certificate_key /etc/ssl/private/api.xxx.com.key;
ssl_protocols TLSv1.2 TLSv1.3; # 根据需要调整
ssl_ciphers HIGH:!aNULL:!MD5; # 根据需要调整
client_max_body_size 100m;
location / {
proxy_pass http://127.0.0.1:5005; # 替换为你的 chat2api 服务监听的地址和端口
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
注意:
server_name
:设置为api.xxx.com
。ssl_certificate
:指向.pem
证书文件的路径。ssl_certificate_key
:指向.key
私钥文件的路径。proxy_pass
:设置为`服务监听的地址和端口- 第一个
server
块用于将 HTTP 请求重定向到 HTTPS
- 启用 Nginx 配置
- 创建软链接到
sites-enabled
目录:
sudo ln -s /etc/nginx/sites-available/api.vtofun.me /etc/nginx/sites-enabled/api.vtofun.me
- 移除默认的 Nginx 配置:
sudo rm /etc/nginx/sites-enabled/default
- 测试 Nginx 配置:
sudo nginx -t
- 重启 Nginx 服务:
sudo systemctl restart nginx
Swap 空间配置 #
创建swap空间 #
- 检查 Swap 空间: 首先,检查系统当前是否已经配置了 Swap 空间:
free -h
- 创建 Swap 文件:
使用
fallocate
命令创建一个 Swap 文件。例如,创建一个 2GB 的 Swap 文件:
sudo fallocate -l 2G /swapfile
或者,你也可以使用 dd
命令创建 Swap 文件:
sudo dd if=/dev/zero of=/swapfile bs=1M count=2048
这将创建一个名为 /swapfile
,大小为 2GB 的文件。可以根据需要调整 count
的值来改变 Swap 文件的大小。
3. 设置 Swap 文件权限:
为了安全起见,设置 Swap 文件的权限,只允许 root 用户读写:
sudo chmod 600 /swapfile
- 格式化为 Swap 空间:
使用
mkswap
命令将文件格式化为 Swap 空间:
sudo mkswap /swapfile
- 启用 Swap 空间:
使用
swapon
命令启用 Swap 空间:
sudo swapon /swapfile
- 验证 Swap 空间:
再次使用
free -h
命令验证 Swap 空间是否已启用:
free -h
应该能看到 Swap
那一行显示了你刚刚配置的 Swap 空间大小。
- 设置开机自动挂载 Swap 空间:
为了使 Swap 空间在系统重启后仍然有效,需要将其添加到 /etc/fstab
文件中。使用文本编辑器打开该文件:
sudo vim /etc/fstab
在文件末尾添加以下一行:
/swapfile swap swap defaults 0 0
- 调整 Swappiness 值(可选):
swappiness
参数控制内核使用 Swap 空间的积极程度。默认值通常是 60。对于服务器,你可能希望降低这个值,以便系统更倾向于使用物理内存,只有在必要时才使用 Swap 空间。
查看当前的 swappiness
值:
cat /proc/sys/vm/swappiness
临时修改 swappiness
值(例如设置为 10):
sudo sysctl vm.swappiness=10
永久修改 swappiness
值,编辑 /etc/sysctl.conf
文件:
sudo nano /etc/sysctl.conf
在文件末尾添加或修改以下行:
vm.swappiness=10
停用swap空间 #
- 关闭 Swap 空间:
使用
swapoff
命令关闭指定的 Swap 空间。如果你的 Swap 空间是基于文件的(如前面示例中的/swapfile
),可以使用以下命令:
sudo swapoff /swapfile
不确定 Swap 分区的路径,可以使用 swapon --show
或 free -h
命令查看。
- 删除 Swap 文件(可选):
sudo rm /swapfile
- 编辑
/etc/fstab
文件:
为了防止系统在重启后自动挂载 Swap 空间,需要从 /etc/fstab
文件中删除或注释掉相关的条目。
sudo vim /etc/fstab
找到包含 /swapfile
的那一行:
/swapfile swap swap defaults 0 0
删除这一行,或者在行首添加 #
将其注释掉:
#/swapfile swap swap defaults 0 0
- 验证 Swap 空间是否已停用:
使用 free -h
命令验证 Swap 空间是否已停用:
free -h