我尝试使用Docker + nginx + cloudflare来搭建Next.js服务器

章节目录

首先

1. 创建容器
2. 安装nginx
3. 配置nginx
4. 设置Cloudflare Tunnel

结尾

首先

上一次我已经成功地在我的家用服务器上安装了Rootless Docker。请点击此链接查看具体步骤:https://qiita.com/piny940/items/729e52a80724754daa99

我计划在本次中在家中的服务器上搭建Next.js服务器并向公众开放。

在中国只需要一个选择来进行以下的一个本地化的解释: 前提:

    • 動くDockerfile・docker-composeがある

 

    • サーバー上でDockerが動作する

 

    cloudflareをDNSサーバーとする独自ドメインを持っている

Environment: 环境

    Ubuntu22.04 server

生成一个容器

使用以下的命令来启动服务器。

docker compose up -d

2. 安装nginx.

我们将按照公式的指引进行安装。

 

安装所需的软件包

sudo apt install curl gnupg2 ca-certificates lsb-release ubuntu-keyring

取得密钥

curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \
    | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null

请确保键已经成功下载完成。

gpg --dry-run --quiet --no-keyring --import --import-options import-show /usr/share/keyrings/nginx-archive-keyring.gpg

如果输出如下, 就可以了。

pub   rsa2048 2011-08-19 [SC] [expires: 2024-06-14]
      573BFD6B3D8FBC641079A6ABABF5BD827BD9BF62
uid                      nginx signing key <signing-key@nginx.com>

设置仓库

echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] \
http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" \
    | sudo tee /etc/apt/sources.list.d/nginx.list

安装

sudo apt update
sudo apt install nginx

确认安装成功

$ nginx -v
nginx version: nginx/1.24.0

3. nginx配置

在 /etc/nginx/conf.d/ 文件夹下创建一个名为 test.conf 的配置文件,并按照以下内容进行描述。

server {
        listen 80;
        server_name www.example.com; # サーバーのアドレス

        location / {
                proxy_pass http://localhost:{package.jsonに書いたポート};
                proxy_http_version 1.1;
                proxy_set_header Upgrade $http_upgrade;
                proxy_set_header Connection 'upgrade';
                proxy_set_header Host $host;
                proxy_cache_bypass $http_upgrade;
        }
}

使用下面的命令应用设置。

sudo systemctl restart nginx

请确认它的正常运转

sudo systemctl status nginx

4. 设置Cloudflare隧道

如果与服务器之间的通道尚未建立,请在Cloudflare控制台上进行设置。

 

image.png

使用这个可以让你能够访问服务器。

总结

我们这次使用Cloudflare Tunnel来公开Next.js服务器。
下次我们计划在服务器上搭建数据库服务器,并公开Rails服务器。

以下是一些參考資料。

 

广告
将在 10 秒后关闭
bannerAds