Nginx Chinese Domain

在 Nginx 中配置中文域名

Written by

中文域名出來有一段時間了,在 Nginx 配置一個中文域名,主要是讓網際網路使用者可以用中文來連結網站,但是我覺得用英文打網址會比中文方便,一直沒去買一個中文域名來使用。

剛好有一個客戶有這個需求,就把在 Nginx 服務器中配置中文域名方法筆記下來。

因為我們現在用的 Linux 系統的核心都是英文,DNS server 的解析也是由英文代碼交換,所以 DNS server 上並不支援中文域名解析。

所以,中文域名的解析都需要轉成 Punycode 碼,然後 DNS 解析 Punycode 碼。

客戶端使用瀏覽器輸入中文域名,才能利用 DNS 解析 Punycode 碼後,才能找到我們的網站主機。

第一步:

要先將中文域名轉成 Punycode 編碼,利用線上 Punycode 轉碼工具,如下圖:

Punycode 轉碼工具

然後將 xn--i8sq8w6kj0k3b.tw 這組網址複製下來。

修改 Nginx 配置文件:

server {
	listen 80;
	listen [::]:80;
	server_name xn--i8sq8w6kj0k3b.tw www.xn--i8sq8w6kj0k3b.tw;
............
}

保存後,重起 Nginx:

nginx -t && service nginx restart

現在瀏覽器可以用中文域名找到你的網站,接下來還有 2 件麻煩的問題要解決:

  • 中文域名信箱收發件的問題
  • WordPress 網頁快取的問題

原本想用 Mailgun 第三方 SMTP 來處裡,可惜國外服務商不接受中文域名;那改用主機 PHPmail 來發信是可行的,但是中文域名信箱該如何建置就是一個頭痛問題,最後是使用 Gmail 信箱來處裡,但是客戶收到信件的「發信人信箱」就不是中文域名了。

另外,在 WordPress 網站上測試了 2 個快取外掛 WP Rocket 和 Cache Enabler 都無法成功快取網頁,外掛開發商都是外國人,可能沒有想過這個轉碼的問題,如果懂 PHP 工程師修改外掛原碼,應該是可行的。最後是用 Nginx FastCGI 主機端直接做靜態快取來實現。

若以 SEO 的角度來看,中文域名的優勢不會這麼明顯了,找一個簡單好記的英文域名,您會比較省心。

如果您也碰到使用中文域名來建站,有更好的信箱和快取配置方法,歡迎分享。

hosted by kinsta

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

Your Mastodon Instance