我尝试使用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控制台上进行设置。
使用这个可以让你能够访问服务器。
总结
我们这次使用Cloudflare Tunnel来公开Next.js服务器。
下次我们计划在服务器上搭建数据库服务器,并公开Rails服务器。
以下是一些參考資料。