【保姆级教程】免费域名注册 Cloudflare 域名解析 Ngnix端口转发

news2024/9/8 19:34:51

前段时间,带大家搞了两台云服务器:

  • 玩转云服务:Oracle Cloud甲骨文永久免费云服务器注册及配置指南
  • 玩转云服务:手把手带你薅一台腾讯云服务器,公网 IP

基于这两台云服务器,我们玩转了很多有趣的开源项目:

  • 手把手带你搭建免费的人脸检测/识别系统
  • 本地部署大模型?Ollama 部署和实战,看这篇就够了

不过上述这些应用都是通过 IP +端口号的方式访问的,非常不利于传播~

这时你需要的就是一个域名,以及把域名翻译成 IP 的服务。

通常各大云厂商都提供域名注册服务,不过域名注册是需要付费的。

如果你只是想搞个来玩玩,又不想花这个钱?

好在有一些二级域名可以白嫖~

本文将带大家:注册一个免费域名,并通过 Cloudflare 实现免费的域名解析,让小伙伴们通过域名就能访问你的网站!。

1.免费域名注册

免费的域名网站有不少,不过随着大家将白嫖进行到底的精神,很多都不能用了。

最常见的就是 eu.org,由Paul Mockapetris 在1996年创建,是为了给没有资金买域名的个人或组织提供永久免费的域名。不过,状态一直处于审核中 == 没通过~

传送门:https://nic.eu.org/,感兴趣的小伙伴可以去试试,有成功的评论区告诉我哦~

接下来介绍的这个,亲测注册成功,带着大家走一遍流程。

传送门:https://nic.us.kg/

首先,测试一下你想要注册的域名,是否已被占用,然后点击下面的立即注册,用邮箱创建一个账号(国内邮箱即可)。

账号注册有几种方式,我这里选择的是填写 github issue 申请,大概不到 1 小时就通过了,邮件名称为 GitHub KYC Approved,通过后即可前往申请域名。

注册成功后,点击域名注册

如果没被注册过,它会提示你,你只需要180天后续订下一年,就可以一直使用下去。

下面两个必填的 Name Server 是什么鬼?

这里是让你填:用于 域名解析 的域名服务器。

什么是域名解析:通过将域名映射到特定的IP地址,使得用户能够通过域名轻松访问你的网站 or 服务。而域名解析,需要由域名服务器来执行。

Cloudflare 是一个知名的云服务提供商,提供免费的域名解析服务,同时也提供域名注册服务,不过需要付费。

所以,我们就以 Cloudflare 为例,给大家展示如下如何拿到域名服务器。

2.免费域名解析

2.1 获取域名服务器

首先,前往 https://www.cloudflare.com 注册一个账号。

然后,点击最上方的 添加站点

输入你刚注册的域名,点击 继续

选择这里的 free 计划(付费的服务暂时还用不到),点击 快速扫描。

没有注册过的域名是没有任何解析记录的,如出现解析记录说明此域名已经被注册过了。

最后,找到这里的名称服务器,复制到刚才的 Name Server 处。

比如我这里,最后点击 注册

注册成功!这里提示您的域名已成功创建并提交到根 DNS。请允许最多 20 分钟或更长时间,以便域名解析记录和注册生效。

现在我们回到 Cloudflare,当 houge.us.kg 在 Cloudflare 上激活时,它会向您的注册邮箱发送电子邮件。

大概不到 10 分钟就能收到 Cloudflare 的邮件。

回到 Cloudflare,这里状态也变成了 活跃

2.2 添加 DNS 记录

接下来需要添加 DNS 记录,也就是 域名 和 IP 的一一映射关系。

类型怎么填:

  • A:用于将域名映射到 IPv4 地址,大部分云服务器提供的都是 IPv4,所以选择默认的 A 即可。
  • AAAA:用于将域名映射到 IPv6 地址。
  • CNAME:用于将一个域名指向另一个域名(可以是另一个CNAME或者A记录)。

名称怎么填:

  • 填入 @:直接指向你的根域名;
  • 填入 www:指向www.xxx.com,比如对应这里:浏览器输入 www.houge.us.kg 也能指向你的 IP。

IP 地址填写你申请的云服务器地址,添加成功后,如下图所以:

到这里,你的 域名 已经和 IP 绑定好了。

那么,在浏览器输入你的域名,就能访问你的网站了?

错,还差一步!

我们在浏览器中输入网址时,通常是发出 HTTP 请求,而 HTTP 请求的默认端口是 80,所以,你还需要确保服务器的 80 端口是开放和可用的。

这时,你得来了解下 Nginx 这款神器了。

2.3 Nginx 端口转发

Nginx 是啥?

一个高性能的开源 Web 服务器和反向代理服务器,同时也可以用作负载均衡器和 HTTP 缓存。主要有以下功能:

  • Web 服务器:提供静态内容(如 HTML、CSS、图片等)。
  • 反向代理:将客户端请求转发到后端服务器。
  • 负载均衡:分配请求到多个服务器,提高性能和可用性。
  • SSL/TLS 支持:处理 HTTPS 请求,确保数据安全。

上一篇:Ollama 部署和实战,我们把 Ollama 的 WebUI 部署在了 3000 端口上。

所以,我们这里就将 80 端口上的请求转发到 3000 端口的后端应用上,来给大家展示下如何使用 Nginx。

2.3.1 Nginx 安装

如果你的服务器上安装好了宝塔面板,可以直接在面板中安装,不过使用过程中并不是特别友好。

这里推荐大家直接在终端安装。

方式一: 如果是预装了 Debian/Ubuntu 的服务器,可以一键安装:

sudo apt install -y nginx

启动 & 关闭 & 重启命令:

sudo systemctl start nginx
sudo systemctl stop nginx
sudo systemctl restart nginx

设置开机自启动:

sudo systemctl enable nginx.service

查看 Nginx 状态:

sudo systemctl status nginx

方式二:编译安装(推荐),前往官网找到指定版本

官网:https://nginx.org/en/download.html

终端输入如下命令,进行下载并安装:

mkdir nginx 
cd nginx
wget https://nginx.org/download/nginx-1.26.1.tar.gz
tar -xf nginx-1.26.1.tar.gz
./configure
make
make install

默认安装在:/usr/local/nginx/sbin/nginx

此时环境变量中找不到,需要建立软连接:

ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/nginx

此时,再执行:nginx -v

返回版本号,说明安装成功。

服务启动 & 停止 & 重启命令如下:

nginx # 启动
nginx -s stop # 关闭
nginx -s reload # 重启
nginx -t # 测试配置文件

2.3.2 Nginx 配置

Nginx 是依赖配置文件进行运行的,如果是按照上述方式二安装的,那么默认配置在:/usr/local/nginx/conf/nginx.conf

如何查看默认配置文件在哪?

sudo nginx -t
# 输出
nginx: the configuration file /www/server/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /www/server/nginx/conf/nginx.conf test is successfuli

为了实现我们端口转发的需求:

step 1: 在默认配置文件中 http 的配置中添加一行:

http {
    include /usr/local/nginx/conf/server/*.conf;
}

!!注意:修改后,记得保存,否则会无法生效。 这样 Nignx 启动后,它就会自动匹配 /usr/local/nginx/conf/server/ 文件夹下所有后缀为 .conf 的文件。

step 2: 新建 /usr/local/nginx/conf/server/ 文件夹,然后在其中新建一个 .conf 的文件,其中填入:

server {
    listen 80;
    server_name houge.us.kg;
    location / {
        proxy_pass       http://127.0.0.1:3000;
        proxy_set_header   X-Real-IP $remote_addr;
        proxy_set_header   Host      $http_host;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }
}

上面的参数说明如下:

  • listen 80,这时 http 默认的端口号,确保它没有被占用,否则需要换用其他端口号;如果有多个服务都在监听 80 端口,则 nginx 会按照配置中的顺序分配。
  • server_name,当然就是你注册好的域名。
  • proxy_pass,你要转发到的后端端口,我们这里是本地的 3000 端口。

修改配置文件后,记得一定要重启 Nginx,否则配置无法生效。

启动后,我们查看下进程号:

ps -aux | grep nginx

如果出现下面界面,说明 Nginx 服务已经成功启动,不过 80 端口出了问题,需要排查下:

成功搞定!

写在最后

至此,你也能让小伙伴们通过专属域名访问你的网站啦。

想要一个酷炫但不用花钱的域名?只需三步:

  1. US.KG 注册免费二级域名
  2. Cloudflare 实现免费域名解析
  3. Nginx 实现端口转发

希望能够帮助更多的小伙伴搭建自己的在线网站,展示你的创意成果。快去试试吧!别忘了评论区展示你的成果~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1958693.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ElasticSearch(八)— 聚集查询1

一、总概 聚集查询(Aggregation)提供了针对多条文档的统计运算功能,它不是针对文档本身内容的检索,而是要将它们聚合到一起运算某些方面的特征值。 聚集查询与 SQL 语言中的聚集函数非常像,聚集函数在 Elasticsearch 中相当于是聚集查询的一…

掌控数据流的智能仪表板:Redpanda Console

Redpanda Console: 一站式管理,让数据流尽在掌控之中。- 精选真开源,释放新价值。 概览 Redpanda Console,是一款创新的Web界面工具,专为简化Kafka和Redpanda数据流的监控与管理而设计。它以用户友好的交互方式&#…

浏览器用户文件夹详解 - Favicons(二)

1. 引言 上一篇文章我们深入探讨了Chromium用户文件夹中的Bookmarks文件,了解了它的JSON结构以及如何解析和修改书签数据。 在本文中,我们将继续探索Chromium用户文件夹中的另一个重要文件:Favicons。Favicons,也就是我们常说的网站图标,是浏览器中不可或缺的一部分。它们不仅…

RK3568笔记四十七:PWM 子系统

若该文为原创文章,转载请注明原文出处。 pwm 子系统功能单一,很少单独使用,一般用于控制显示屏的背光、控制无源蜂鸣器、伺服电机、电压调节等等。 一、PWM介绍 PWM(Pulse width modulation),脉冲宽度调制。在内核中 PWM 驱动较简…

并发编程工具集——并发容器-下(二十五)

List List 里面只有一个实现类就是 CopyOnWriteArrayList。CopyOnWrite,写的时候会将共享变量新复制一份出来,读操作完全无锁;适合读多写少的场景,写操作会复制数组,在新的数组中操作实现原理:CopyOnWriteA…

备考软考高级系统架构设计师,需要买哪些资料?

距离2024下半年软考高级系统架构设计师考试仅剩三个月!时间紧迫,单单啃书已经不够了,毕竟是软考高级科目,难度不是那些初、中级可以比拟的。要想短时间速通架构考试,学会抓重点真的很重要,45分说多不多说少…

【音视频】RTSP、RTMP与流式传输

文章目录 前言RTSP与RTMPRTSP(Real-Time Streaming Protocol)RTMP(Real-Time Messaging Protocol)主要差异 什么是流式传输?流式传输的特点流式传输与传统下载的区别 使用VLC播放RTSP监控 总结 前言 在现代网络环境中…

C++ //练习 16.2 编写并测试你自己版本的compare函数。

C Primer(第5版) 练习 16.2 练习 16.2 编写并测试你自己版本的compare函数。 环境:Linux Ubuntu(云服务器) 工具:vim 代码块 /*********************************************************************…

PyTorch深度学习快速入门(下)

PyTorch深度学习快速入门(下) 一、现有网络模型的使用及修改(一)背景知识(二)修改网络模型的三种方法 二、网络模型的保存与加载(一)保存网络模型的两种方法(二&#xff…

阿里云 服务器安装rabbit

现在我们去服务器安装一个rabbit 进入home 创建一个rabbit文件夹 /home/rabbit vim deployRabbit.sh 脚本内容 #!/bin/bash docker run -d \ --name dev.rabbit \ --network dev-net \ -p 15672:15672 \ -v ./data:/var/lib/rabbitmq \ --hostname dev.rabbit \ rabbitmq:…

css3 红色阴影边框紧急提醒呼吸灯特效

效果截图 代码 <!DOCTYPE html> <html><head><title>红色呼吸灯紧急特效</title><style>keyframes alarm {0% {box-shadow: 0 0 30px #ff0000;}50% {box-shadow: 0 0 60px #ff0000, inset 0 0 60px #ff0000;}100% {box-shadow: 0 0 30px …

八、【Python】基础 - 【Python while 循环全解析】:掌握无限循环的艺术

&#x1f4a1;&#x1f4da;【Python while 循环全解析】&#xff1a;掌握无限循环的艺术&#x1f4da;&#x1f4a1; 目录 1.基本语法 2.示例 3.注意事项 4.嵌套循环与循环控制语句 5.示例&#xff1a;使用 break 和 continue 6.示例&#xff1a;计数器 7.示例&#xf…

Web:Url 编码 -13

URL编码概述 HTTP协议只支持iso8859-1字符集。 而此字符集中只有英文数字常见符号。 所以HTTP原生是无法传输非iso8859-1字符的。 为了解决这个问题&#xff0c;提出了一种称之为URL编码的解决方案。 URL编解码详解 将非iso8859-1字符&#xff0c;进行转换 先将字符按照指定码表…

时间序列分析方法之 -- 自回归移动平均模型(Autoregressive Moving Average, ARMA)原理及Python代码示例

目录 原理 适用情况 Python 示例代码 结论 原理 自回归移动平均模型&#xff08;Autoregressive Moving Average, ARMA&#xff09;是一种结合了自回归&#xff08;AR&#xff09;模型和移动平均&#xff08;MA&#xff09;模型的时间序列分析模型。它适用于描述和预测平稳…

AGI思考探究过程中的意义、价值与乐趣 Ⅰ

探究以泛GPT为代表的预训练自回归next token prediction GenAI(即llm)与Alpha系列为代表的RL&#xff0c;再到Sora为代表的DiT视觉生成领域模型的本质普遍性及表象差异&#xff0c;以及为什么要将其两者或三者联系甚至融合起来看待&#xff1f;本质上是尝试对比采用上述三种模型…

昇思MindSpore 应用学习-Diffusion扩散模型-CSDN

Diffusion扩散模型 本文基于Hugging Face&#xff1a;The Annotated Diffusion Model一文翻译迁移而来&#xff0c;同时参考了由浅入深了解Diffusion Model一文。 本教程在Jupyter Notebook上成功运行。如您下载本文档为Python文件&#xff0c;执行Python文件时&#xff0c;请…

【项目管理】高手项目经理都在用的6个SOP

SOP&#xff08;Standard Operating Procedure&#xff09;流程是一种标准化的操作指南&#xff0c;旨在确保组织或团队在各种情况下都能高效、一致地完成任务。SOP流程通常包括详细的步骤、关键控制点和责任分配&#xff0c;以确保质量和安全。SOP流程涉及从日常运营到危机管理…

五、Spring Boot - 上手篇(1)

&#x1f33b;&#x1f33b;目录 一、快速入门&#xff1a;创建第一个SpringBoot 工程1.1 点击File--->New--->Project...1.2 选择版本和依赖的相关骨架包1.3 设置项目保存目录1.4 项目创建完成&#xff0c;工程主界面如下1.5 项目说明1.6 启动项目1.7 编写 HelloControl…

2024年7月23日~2024年7月29日周报

目录 一、前言 二、完成情况 2.1 一种具有边缘增强特点的医学图像分割网络 2.2 融合边缘增强注意力机制和 U-Net 网络的医学图像分割 2.3 遇到的困难 三、下周计划 一、前言 上周参加了一些师兄师姐的论文讨论会议&#xff0c;并完成了初稿。 本周继续修改论文&#xff0…

【Git】 如何将一个分支的某个提交合并到另一个分支

【Git】 如何将一个分支的某个提交合并到另一个分支 在使用 Git 进行版本控制时&#xff0c;常常会遇到这样的需求&#xff1a;将某个分支的特定提交合并到另一个分支中。这种情况下&#xff0c;我们可以使用 cherry-pick 命令来实现。本文将详细介绍 cherry-pick 命令的使用方…