Linux服務器域名配置主要分為兩部分:DNS解析配置(將域名映射到服務器IP)和Web服務域名綁定(將域名指向具體網站目錄)。以下是詳細步驟:
DNS解析是將域名轉換為服務器IP的核心步驟,需通過BIND(Linux常用DNS服務器軟件)實現。
根據Linux發行版選擇安裝命令:
sudo apt update && sudo apt install bind9 bind9utils bind9-doc
sudo yum install bind bind-utils
編輯主配置文件/etc/bind/named.conf
(Debian/Ubuntu)或/etc/named.conf
(CentOS),添加域名區域聲明:
zone "example.com" {
type master; // 區域類型(主服務器)
file "/etc/bind/db.example.com"; // 區域文件路徑
};
若需反向解析(IP轉域名),添加反向區域聲明(如0.168.192.in-addr.arpa
對應192.168.0.0/24
網段)。
在指定路徑(如/etc/bind/
)創建區域文件(如db.example.com
),內容示例如下:
$TTL 86400 // 生存時間(秒)
@ IN SOA ns1.example.com. admin.example.com. ( // SOA記錄(Start of Authority)
2025101801; // 序列號(每次修改需遞增)
3600; // 刷新周期(主從同步間隔)
1800; // 重試周期(同步失敗后重試間隔)
604800; // 過期時間(從服務器數據有效期)
86400; // 負緩存時間(錯誤解析緩存時間)
)
@ IN NS ns1.example.com. // NS記錄(域名服務器)
ns1 IN A 192.168.1.100 // A記錄(域名→IP)
www IN CNAME example.com. // CNAME記錄(別名)
mail IN A 192.168.1.101 // 郵件服務器A記錄
反向區域文件(如db.192
)示例如下:
$TTL 86400
@ IN SOA ns1.example.com. admin.example.com. (
2025101801;
3600;
1800;
604800;
86400;
)
@ IN NS ns1.example.com.
100 IN PTR www.example.com. // PTR記錄(IP→域名,192.168.1.100 → www.example.com)
sudo named-checkconf
sudo named-checkzone example.com /etc/bind/db.example.com
sudo systemctl restart bind9
(Debian/Ubuntu)或sudo systemctl restart named
(CentOS)將客戶端設備的DNS服務器地址設置為Linux服務器的IP(如192.168.1.100
),可通過/etc/resolv.conf
(臨時)或網絡設置(永久)修改。測試解析:ping example.com
或nslookup example.com
。
域名綁定是將域名指向Web服務器的具體網站目錄,需根據Web服務類型配置。
/etc/apache2/sites-available/
),創建新文件(如example.com.conf
):<VirtualHost *:80>
ServerName www.example.com // 主域名
ServerAlias example.com // 別名(可選)
DocumentRoot /var/www/example // 網站根目錄
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
sudo a2ensite example.com.conf # 啟用站點(Debian/Ubuntu)
sudo systemctl restart apache2 // 重啟Apache
/etc/nginx/nginx.conf
)或站點配置文件(如/etc/nginx/sites-available/example.com
),添加server
塊:server {
listen 80;
server_name www.example.com example.com; // 監聽域名
root /home/web1; // 網站根目錄
index index.html;
access_log /var/log/nginx/example.access.log;
error_log /var/log/nginx/example.error.log;
}
sudo systemctl restart nginx
named-checkconf
/named-checkzone
)、區域文件序列號(需遞增)、客戶端DNS設置(是否指向服務器IP)。systemctl status apache2
/nginx
)、防火墻是否放行80/443端口(sudo ufw allow 80/tcp
)、虛擬主機配置是否正確(ServerName
是否匹配域名)。