Apache2配置:实现每个请求重定向至随机生成的子域名
Apache2配置:实现每个请求重定向至随机生成的子域名
嗨,我来帮你搞定这个需求!要实现每个请求都重定向到随机生成的子域名,Apache本身就有办法做到,不需要额外的外部脚本,在Ubuntu 20.04上配置起来很简单,咱们一步步来:
一、启用必要的Apache模块
首先,我们需要用到mod_rewrite(用来做动态重定向规则),如果想要更简洁的唯一标识符,还可以启用mod_unique_id。执行以下命令启用模块并重启Apache:
# 启用mod_rewrite(必选) sudo a2enmod rewrite # 如果想用自动生成的唯一ID作为子域名,启用这个模块 sudo a2enmod unique_id # 重启Apache使配置生效 sudo systemctl restart apache2
二、修改你的VirtualHost配置
把原来的Redirect 302 / https://<randomstring>.mysite.com/替换成下面的动态重定向规则,两种方案任选其一:
方案1:用「客户端IP+时间戳」生成子域名
这个方案满足你提到的指纹需求,同一客户端不同时间请求会得到不同子域名,不同客户端的子域名也会不同。修改后的完整VirtualHost配置如下:
<VirtualHost *:443> ServerName mysite.com # 开启重写引擎 RewriteEngine On # 捕获客户端IP,将IP中的点替换为短横线(子域名不能包含点),再拼接时间戳 RewriteCond %{REMOTE_ADDR} ^([0-9]+)\.([0-9]+)\.([0-9]+)\.([0-9]+)$ RewriteRule ^(.*)$ https://%1-%2-%3-%4-%{TIME_YMDHMS}.mysite.com$1 [R=302,L] ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log vhost_combined SSLEngine on SSLCertificateFile /etc/apache2/ssl/site.cert SSLCertificateKeyFile /etc/apache2/ssl/site.key </VirtualHost>
%{REMOTE_ADDR}是客户端IP,通过RewriteCond捕获后把点换成短横线(比如192.168.1.1变成192-168-1-1)%{TIME_YMDHMS}是Apache内置的时间变量,格式为YYYYMMDDHHMMSS(比如20240520143025)- 最终生成的子域名类似
192-168-1-1-20240520143025.mysite.com
方案2:用Apache自动生成的唯一ID作为子域名
如果你不需要IP和时间的指纹信息,只想快速得到一个全局唯一的随机字符串,可以用mod_unique_id生成的%{UNIQUE_ID}变量,配置更简单:
<VirtualHost *:443> ServerName mysite.com # 开启重写引擎 RewriteEngine On # 直接用UNIQUE_ID作为子域名,每个请求的ID都是唯一的 RewriteRule ^(.*)$ https://%{UNIQUE_ID}.mysite.com$1 [R=302,L] ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log vhost_combined SSLEngine on SSLCertificateFile /etc/apache2/ssl/site.cert SSLCertificateKeyFile /etc/apache2/ssl/site.key </VirtualHost>
%{UNIQUE_ID}是Apache自动生成的16位左右的随机字符串(比如ZkX7a-abc123-def),完全符合子域名的命名规则。
三、关键前提:配置泛域名解析
不管用哪种方案,你都需要在域名服务商那里配置*.mysite.com的泛域名解析,指向你的服务器IP。否则重定向后的子域名会无法访问,导致404错误。
四、验证配置
修改完配置后,先检查语法是否正确:
sudo apache2ctl configtest
如果输出Syntax OK,就重启Apache生效:
sudo systemctl restart apache2
现在每次访问mysite.com都会被重定向到一个独一无二的子域名啦!
备注:内容来源于stack exchange,提问作者Mnemosyne
相关产品推荐
相关产品推荐

