You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置CWP VPS的Apache虚拟主机实现用户子域名访问

解决方法

一、HTTPS无法访问的修复步骤

  1. 确认Apache SSL模块已启用
    • Debian/Ubuntu 执行命令:a2enmod ssl && systemctl restart apache2
    • CentOS/RHEL 执行命令:yum install mod_ssl -y && systemctl restart httpd
  2. 补全443端口的虚拟主机配置
    你当前仅配置了80端口的HTTP监听规则,没有对应配置443端口的HTTPS规则,导致HTTPS请求无法被正确转发。参考配置如下:
<VirtualHost 1.2.3.4:443>
    ServerName ubuntu001.com
    ServerAlias www.ubuntu001.com
    ServerAlias ubuntu001.myserver.com
    ServerAlias www.ubuntu001.myserver.com

    ServerAdmin webmaster@ubuntu001.com
    DocumentRoot /home/ubu001/public_html

    # SSL配置项,替换为你自己的证书路径
    SSLEngine on
    SSLCertificateFile /path/to/your/cert.pem
    SSLCertificateKeyFile /path/to/your/privkey.pem
    SSLCertificateChainFile /path/to/your/chain.pem

    <IfModule mod_setenvif.c>
        SetEnvIf X-Forwarded-Proto "^https$" HTTPS=on
    </IfModule>

    <Directory "/home/ubu001/public_html">
        Options -Indexes -FollowSymLinks +SymLinksIfOwnerMatch
        AllowOverride All Options=ExecCGI,Includes,IncludesNOEXEC,Indexes,MultiViews,SymLinksIfOwnerMatch
    </Directory>
</VirtualHost>

配置完成后重启Apache服务即可生效。


二、批量实现所有用户子域名自动映射方案

如果用户数量较多,逐个添加虚拟主机效率太低,可以使用泛域名解析+mod_vhost_alias模块实现自动映射,无需逐个配置:

  1. 给主域myserver.com添加一条泛域名A记录:*.myserver.com 指向你的VPS公网IP
  2. 启用mod_vhost_alias模块
    • Debian/Ubuntu 执行命令:a2enmod vhost_alias && systemctl restart apache2
    • CentOS/RHEL 在Apache配置中加载mod_vhost_alias.so后重启服务
  3. 添加批量虚拟主机配置
# 80端口批量配置
<VirtualHost 1.2.3.4:80>
    ServerName *.myserver.com
    UseCanonicalName Off
    # %1自动匹配子域名第一段,比如ubuntu001.myserver.com对应/home/ubuntu001/public_html
    VirtualDocumentRoot /home/%1/public_html
</VirtualHost>

# 443端口批量配置
<VirtualHost 1.2.3.4:443>
    ServerName *.myserver.com
    UseCanonicalName Off
    VirtualDocumentRoot /home/%1/public_html

    SSLEngine on
    # 使用*.myserver.com的泛域名SSL证书即可覆盖所有用户子域名,可通过acme.sh工具申请免费泛域名证书
    SSLCertificateFile /path/to/wildcard/cert.pem
    SSLCertificateKeyFile /path/to/wildcard/privkey.pem
    SSLCertificateChainFile /path/to/wildcard/chain.pem
</VirtualHost>

如果需要适配ubuntu001.com.myserver.com格式的域名,调整VirtualDocumentRoot的匹配规则即可,比如用%-3+匹配前几段的用户域名。


内容的提问来源于stack exchange,提问作者GDI007

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 11:45:01