通过WSL2、Docker 和 NPS 实现网站部署

通过WSL2、Docker 和 NPS 实现网站部署

本人纯小白,由于之前看了几篇文章和几个教学视频,在加上平时工作太过于无聊,而且在家又有闲着的笔记本,于是灵机一动想将本地电脑做成个人使用服务器,部署几个人的网站玩玩。为方便本地电脑直接使用的wsl2作为虚拟机,然后项目使用的docker,若路由器有公网ipv4使用可以直接跳过内网穿透部分教程,内网穿透使用尝试过三种方案最终有两种得以实现:

  1. 本地服务器通过 cloudflare 实现的一键内网穿透,无需服务器但是cloudflare 为外网的网站,在国内访问延迟比较高。
  2. 本地服务器通过vps(需要一台服务器)进行内网穿透,vps服务器为香港的,相对第一种方案延迟低一点,若其他较远的服务器延迟高可尝试使用优选域名和id进行加速(我未使用)。
  3. 本地服务器通过vps(需要一台服务器)进行内网穿透,这个尝试的阿里云服务器,一开始挺好的帮定域名后贼快,但是没用几天提示需要网络备案,由于在外住房,又没办居住证等问题,最后放弃。

1. 安装和配置 WSL2

1.1 安装 Ubuntu 24.04

首先,我们需要在 Windows 系统上安装 WSL2,并安装 Ubuntu 24.04 作为 Linux 子系统。

参考官方教程:安装 WSL | Microsoft Learn

  • 下载 Ubuntu 24.04 并进行安装。

  • 安装完成后,通过以下命令检查 WSL 版本:

    wsl -l -v
    
  • 配置 WSL2 虚拟机资源,例如设置内存、交换分区和处理器:

    -- 参考文件位置: C:\Users\Admin\.wslconfig
    -- 参考网站: https://blog.csdn.net/weixin_45579994/article/details/112386425
    
    
    [wsl2]
    networkingMode=bridged
    vmSwitch=WSLBridge
    ipv6=false
    memory=16GB
    swap=4GB
    processors=8
    localhostForwarding=true
    

1.2 修改 WSL2 默认安装位置

如果未来系统空间不足,可以将 WSL2 的安装位置进行移动,具体操作可参考此教程

1.3 配置和管理 WSL 防火墙

为确保 Docker 和 NPS 能正常工作,需要开放相应的端口,或者禁用防火墙:

# 查看防火墙状态
sudo ufw status
# 开放 Docker 和 NPS 所需端口
sudo ufw allow 2375
sudo ufw allow 4533
# 禁用防火墙
sudo ufw disable
# 重启防火墙
sudo ufw reload
# 卸载
sudo apt-get remove ufw
# 禁用
sudo ufw disable

1.4 其他相关设置

windows卸载wsl下的ubuntu

直接在设置里面卸载就行

wsl 设置默认用户

2. Docker 安装和配置

2.1 安装 Docker

在 WSL2 上使用 Ubuntu 安装 Docker 非常简单,执行以下命令即可:

# 安装 Docker
sudo apt install docker.io
# 启动 Docker 服务
sudo systemctl start docker
# 测试 Docker 是否安装成功
sudo docker run hello-world

可以通过 Docker 守护进程管理 Docker 容器:

# 重启 Docker 守护进程
sudo systemctl restart docker

2.2 安装 Docker-Compose

Docker Compose 是一个用于定义和运行多容器 Docker 应用的工具,通过以下命令安装 Docker Compose:

sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

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

-- 常用相关指令
# 验证安装
docker-compose --version
# 参考网站
https://developer.baidu.com/article/details/2819402

# 第一次启动
docker compose up -d

# 重启
docker compose stop
docker compose start

# 升级
docker compose down
docker compose pull
docker compose up -d

# 查看日志
docker compose logs -f docs-navidrome-1

3. NPS 内网穿透

NPS(内网穿透)允许我们在没有公网 IP 的情况下,将本地服务暴露到公网。(可将本地项目端口绑定到对应域名上)

参考网站:https://www.youtube.com/watch?v=dL9-GeepjFg

参考文档:最新搭建NPS内网穿透,在外轻松远程访问内网设备!非常检查的配置流程,搭配openwrt软路由来使用,非常好用!轻量级NPS内网穿透自带后台设置界面,详解如何设置客户端和服务器#一瓶奶油 – 奶油之家

个人理解勿喷:nps服务器放在vps服务器上,客户端在本地电脑,客户端与远程外网地址的vps服务器进行连接,在nps界面配置将本地的端口绑定到对应的域名上。域名需要在对应的域名服务商绑定到对应vps服务器上。

3.1 NPS 安装

首先,下载 NPS 客户端和服务器端,解压后进行配置:

# 解压 NPS 服务器端文件
tar -zxvf linux_amd64_server.tar.gz
# 配置 NPS 服务器
./nps -server=154.21.200.24:8024 -vkey=your_vkey

3.2 设置 NPS 客户端

在本地设置 NPS 客户端,通过配置文件或命令行启动:

# 进入 NPS 客户端目录
cd /usr/myapps/nps
# 启动客户端
nohup ./npc -server=154.21.200.24:8024 -vkey=your_vkey &

通过 NPS,将本地的 Web 服务映射到公网访问地址。

4. Cloudflare 内网穿透

1,Cloudflare 提供的内网穿透服务也可以作为 NPS 的备选方案,但由于速度原因不建议优先选择。你可以参考Cloudflare 内网穿透教程进行设置。网上也有许多相关教程

2,l站大佬一键内网穿透脚本,(此方法可行,本人也是使用的此方法才得以成功)

5. 网站部署

5.1 使用 Docker 容器化部署网站

使用 Docker 部署网站服务可以简化服务器管理。下面以部署 Navidrome 音乐服务器为例:

5.1.1 Docker Compose 配置

参考视频:https://www.youtube.com/watch?v=7XtLD8y8EF0&t=206s

参考文章:【好玩的Docker项目】搭建一个完全自由的音乐播放软件————Navidrome 随时随地!想听就听! | 爱玩实验室

说明:建文件夹用于该项目的存放目录,在目录内建docker-compose.yml文件,内容如下(有配置不需要可以跳过):

version: "3"
services:
  navidrome:
    image: deluan/navidrome:latest
    ports:
      - "4533:4533"
    restart: unless-stopped
    environment:
      ND_SCANSCHEDULE: 1m
      ND_LASTFM_ENABLED:
      ND_LASTFM_APIKEY: 05eaac206af0861c0c46410ce2ce542c # 修改成自己的APIKEY
      ND_LASTFM_SECRET: b4c06cd2bdbf4241a1ba0a6581204083  # 修改成自己的SECRET
      ND_SPOTIFY_ID: 566a3d28728d4f0080a4aee45a6dbbd9  # 修改成自己的ID
      ND_SPOTIFY_SECRET: 82cad0c258b3425d8c0eac12ff0ddcf1  # 修改成自己的SECRET
      ND_LOGLEVEL: info
      ND_SESSIONTIMEOUT: 24h
      ND_BASEURL: ""
    volumes:
      - "/usr/myApps/navidrome/music/data:/data"
      - "/usr/myApps/navidrome/music:/music:ro"

5.1.2 启动服务

在配置完成后,使用 Docker Compose 启动服务:

# 启动 Navidrome
docker-compose up -d
# 查看日志
docker-compose logs -f

服务启动后,访问 http://localhost:4533 即可登录 Navidrome 音乐服务器。

6,其他相关文章

本人使用的是雨云服务器,里面有香港服务器且纯中文

推广连接:雨云 - 新一代云服务提供商

便宜vps列表

【VPS选购分享】Racknerd

文件管理项目

LobeChat+ollama本地大模型项目

13 个赞

感谢大佬教程

1 个赞

感谢大佬分享

1 个赞

啪很快啊,找到了一些歌曲然后放到了网站上

个人网站:

test/a123456

原歌曲信息

MP3批量正则修改艺术家信息
查了一些资料使用的MP3tag修改了歌曲信息

强烈建议接入linux.do登录

1 个赞