家庭/小型服務器環境:單公網 IP、單路由器、單 80 端口,需部署 www.aaa.com 和 www.bbb.com 兩個獨立網站,且要求域名後顯示完整 URL 路徑(如 www.bbb.com/contact.html),而非僅顯示主域名。
同一 IP、同一 80 端口,通過 HTTP Host 頭區分不同網站,這是 Web 服務器(Nginx/Apache/Caddy)的標準功能,無需額外端口。
server {
listen 80;
server_name www.aaa.com aaa.com;
root /var/www/aaa;
index index.html index.php;
# ... 其他配置
}
server {
listen 80;
server_name www.bbb.com bbb.com;
root /var/www/bbb;
index index.html index.php;
# ... 其他配置
}
<VirtualHost *:80>
ServerName www.aaa.com
ServerAlias aaa.com
DocumentRoot /var/www/aaa
</VirtualHost>
<VirtualHost *:80>
ServerName www.bbb.com
ServerAlias bbb.com
DocumentRoot /var/www/bbb
</VirtualHost>
在域名服務商(GoDaddy/Cloudflare/阿里雲等)將兩個域名的 A 記錄均指向同一公網 IP:
www.aaa.com A 55.24.15.222
www.bbb.com A 55.24.15.222
當配置 www.bbb.com → IP:8801 時,若使用「URL 轉發/隱性轉發」模式,服務商通過 iframe 或框架嵌套加載目標站點,瀏覽器地址欄始終顯示頂層域名,導致子路徑不更新。虛擬主機直接解析到 IP:80,瀏覽器直接與目標站點通信,URL 自然完整顯示。
僅需一條規則:外部 80 → 內部服務器 IP:80,兩個網站共用。
使用 Let's Encrypt 為每個域名單獨申請證書,Nginx 配置 listen 443 ssl 並指定對應 ssl_certificate,實現多域名 HTTPS 共存。