Nginx 如何配置中文域名

中文域名出来已经很长一段时间了,以往我们都没想过中文域名的配置问题。刚好公司最近有个项目有部署中文域名的需求,就把在 Nginx 服务器中配置中文域名方法笔记下来。

使用 Punycode 转码

在互联网域名中,DNS 通常只允许使用 ASCII 字符,因此为了在域名中表示非 ASCII 字符,Punycode 被用来转换这些字符。例如,一个包含非 ASCII 字符的域名可以使用 Punycode 转换为一个由普通的 ASCII 字符组成的域名。

Punycode 使用了基于 ASCII 字符的特殊编码方案,将 Unicode 字符串转换为 ASCII 字符串,使得这些域名可以被正确地解析和使用。这种转换通过一个特定的前缀(”xn--“)来表示 Punycode 编码的域名。

举个例子,假设有一个中文域名 “wangshuashua.中国”,它可能通过 Punycode 转换为 “wangshuashua.xn--iqs8s” 这样的 ASCII 字符串,在 DNS 中使用这个转换后的字符串来代表原始的中文域名。

中文域名变为Punycode编码即可,在线转码地址:http://tools.jb51.net/punycode/,如下图:

Punycode?


Punycode 是一种编码方案,用于在互联网上表示 Unicode 字符串的 ASCII 兼容形式。它允许将非 ASCII 字符(比如非英语字符,如中文、日文、俄文等)表示为 ASCII 字符串,使得这些字符可以在互联网基础设施中使用,特别是在域名系统 (DNS) 中。

使用 Punycode 转换域名后缀编码之后,在 nginx 配置文件里面把中文后缀转换成 转换之后的编码后缀即可。详细参考如下:

修改Nginx配置

保存,重载nginx:

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注