Apache2将端口绑定至子域名

endermite 发布于 2026-03-09 最后更新于 2026-04-09 4600 次阅读


每次新加子域名时都会忘了咋搞,写个备忘录记录一下。其实就是apache2的rewrite功能。

进入apache安装目录的站点目录(一般在/etc/apache2/sites-available),然后新建文件,如我要新建子域名为draw的,于是我创建draw.endermite.cn.conf。键入以下内容:

<VirtualHost *:443>
    ServerName draw.endermite.cn

    SSLEngine on
    SSLCertificateFile      你的crt文件路径
    SSLCertificateKeyFile   你的key文件路径
    # SSLCertificateChainFile 你的chain.crt文件路径,无可以注释

    # ... (SSL 强化设置可以与上面相同) ...
    # 强化 SSL 设置 (推荐)
    SSLProtocol             all -SSLv3 -TLSv1 -TLSv1.1
    SSLCipherSuite          ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384
    SSLHonorCipherOrder     off
    SSLSessionTickets       off
    ProxyPreserveHost On
    ProxyPass / http://localhost:你的端口/
    ProxyPassReverse / http://localhost:你的端口/

    ErrorLog ${APACHE_LOG_DIR}/code-server_ssl_error.log
    CustomLog ${APACHE_LOG_DIR}/code-server_ssl_access.log combined
    RewriteEngine On
    RewriteCond %{HTTP:Upgrade} =websocket [NC]
    RewriteRule /(.*)           ws://localhost:你的WebSocket端口/$1 [P,L]
    RewriteCond %{HTTP:Upgrade} !=websocket [NC]
    RewriteRule /(.*)           http://localhost:你的主要服务端口/$1 [P,L]
</VirtualHost>
<VirtualHost *:80>
    # 设置主机名
    ServerName draw.endermite.cn
    # 如果你也希望根域名 endermite.cn 也重定向,可以添加 ServerAlias
    #ServerAlias endermite.cn

    # 核心配置:将所有请求永久重定向到 HTTPS 版本
    Redirect permanent / https://draw.endermite.cn/

    # 可选:记录日志,便于排查问题
    ErrorLog ${APACHE_LOG_DIR}/www_redirect_error.log
    CustomLog ${APACHE_LOG_DIR}/www_redirect_access.log combined
</VirtualHost>

接下来,在bash中使用命令:

a2ensite draw.endermite.cn.conf
systemctl reload apache2

完成!

此作者没有提供个人介绍。
最后更新于 2026-04-09