服务器安装

步骤 1:更新系统和软件源

首先,确保系统的软件包是最新的:

1
2
sudo apt update
sudo apt upgrade -y

步骤 2:编译安装 Nginx

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
apt install git -y 									#安装git

git clone https://github.com/nginx/nginx.git #下载nginx源码

cd nginx

auto/configure --prefix=/usr/local/nginx \
--with-http_ssl_module \
--with-stream_ssl_module \
--with-stream_ssl_preread_module \
--with-http_v2_module \
--with-http_gzip_static_module \
--with-pcre \
--with-http_realip_module \
--with-stream_geoip_module=dynamic \
--with-stream

#编译带模块的nginx
make
make install #安装在 "/usr/local/nginx/sbin/nginx"

安装开机自启服务

创建一个 systemd 服务文件:

1
nano /usr/lib/systemd/system/nginx.service

将以下内容添加:

1
2
3
4
5
6
7
8
9
10
11
12
13
[Unit]
Description=nginx
After=network.target

[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s quit
PrivateTmp=true

[Install]
WantedBy=multi-user.target

重新加载 systemd 配置并启动 Nginx:

1
2
3
sudo systemctl daemon-reload
sudo systemctl enable nginx.service
sudo systemctl start nginx

查看nginx状态

1
2
3
4
5
systemctl status nginx.service
nginx.service - nginx
Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor>
Active: inactive (dead)
# 很奇怪,明明启动成功了,为什么显示Active: inactive (dead)?

杀死nginx重启nginx

1
2
3
4
pkill -9 nginx
ps -aux|grep nginx
root 29703 0.0 0.1 12112 1108 pts/0 R+ 04:10 0:00 grep --color=auto nginx
systemctl start nginx

再次查看状态,变成了active,搞定。

将 Nginx 添加到 PATH

如果 Nginx 成功安装,并且你想在任何地方使用 nginx 命令,可以将 Nginx 的 sbin 目录添加到系统的 PATH 环境变量中。编辑 ~/.bashrc 文件(或 ~/.bash_profile,取决于你的 shell 配置文件):

1
nano ~/.bashrc

在文件的末尾添加以下行:

1
export PATH=$PATH:/usr/local/nginx/sbin

保存并退出后,运行以下命令使修改生效:

1
source ~/.bashrc

现在,你可以在任何地方直接运行 nginx 命令了。

步骤 3:安装docker 和 docker-compose

安装依赖包

1
apt install apt-transport-https ca-certificates curl software-properties-common

执行以下命令,导入 Docker 的 GPG 密钥:

1
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

将 Docker 的官方 APT 仓库添加到系统中:

1
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

再次更新包索引,以便系统能够识别新添加的 Docker 仓库:

1
apt update

安装 Docker CE(社区版):

1
apt install docker-ce

安装完成后,启动 Docker 并设置开机自启动:

1
2
systemctl start docker
systemctl enable docker

通过运行以下命令来验证 Docker 是否安装成功:

1
docker --version

输出类似如下内容,表示安装成功:Docker version 20.10.8, build 3967b7d

下载 Docker Compose

从 GitHub 上下载 Docker Compose 的最新稳定版本:

1
apt install jq -y
1
sudo curl -L "https://github.com/docker/compose/releases/download/$(curl -s https://api.github.com/repos/docker/compose/releases/latest | jq -r .tag_name)/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

此命令会下载 Docker Compose 并将其保存到 /usr/local/bin/docker-compose

为 Docker Compose 文件授予可执行权限:

1
sudo chmod +x /usr/local/bin/docker-compose

运行以下命令验证 Docker Compose 是否成功安装:

1
docker-compose --version

输出类似如下内容,表示安装成功:

1
docker-compose version 1.29.2, build 5becea4c

将当前用户添加到 Docker 组(推荐)

如果你不希望每次都使用 sudo,可以将当前用户添加到 docker 组,这样就能直接运行 Docker 命令而无需 sudo

步骤

  1. 将当前用户(fenxiang)添加到 Docker 组:

    1
    sudo usermod -aG docker fenxiang

    这会将用户 fenxiang 添加到 Docker 组。

  2. 退出当前会话并重新登录,或者运行以下命令来应用组的更改:

    1
    newgrp docker

    或者退出并重新登录,以便 fenxiang 用户可以继承新的组权限。

  3. 之后,你就可以直接运行 Docker 和 Docker Compose 命令,而无需使用 sudo 了:

    1
    docker-compose up -d
  4. 验证权限是否生效

在你将用户添加到 docker 组之后,验证一下是否生效:

1
docker ps

如果没有出现权限问题,并且能够成功列出正在运行的容器,那么权限已经正确配置。

步骤 4:安装acme

安装很简单,一条命令:

1
curl https://get.acme.sh | sh -s email=ssy329504125@gmail.com

acme使用说明

1
2
export CF_Key="763eac4f1bcebd8b5c95e9fc50d010b4"
export CF_Email="alice@example.com"
1
./acme.sh --issue --dns dns_cf -d example.com -d '*.example.com'

安装证书

1
2
3
acme.sh --install-cert -d uiuuyr.top \
--key-file /usr/local/nginx/conf/cert/key.pem \
--fullchain-file /usr/local/nginx/conf/cert/cert.pem